Comparar cadenas en C
strcmp ordena texto y nunca devuelve un bool: compara su resultado contra cero.
#include <string.h>
int is_command(const char *arg, const char *name) {
return strcmp(arg, name) == 0;
}
int has_prefix(const char *text, const char *prefix) {
return strncmp(text, prefix, strlen(prefix)) == 0;
}
const char *smaller_of(const char *a, const char *b) {
return (strcmp(a, b) <= 0) ? a : b;
}
int addresses_differ(void) {
const char *a = "same";
char b[] = "same";
return (a != b) && (strcmp(a, b) == 0);
}
Cómo funciona
- Cero significa igualdad; el signo da el orden.
strncmplimita la comparación a un prefijo.==entre doschar *compara direcciones, no contenidos.
Palabras clave y builtins usados aquí
charconstintreturnvoid
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 423
- Tokens
- 140
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 84 segundos.
Paso 1 de 3 en Comparar y buscar; paso 5 de 13 en Cadenas y texto.