Mayúsculas, minúsculas y comparación en C
Convertir en el lugar y comparar sin distinguir mayúsculas de minúsculas.
void upper_in_place(char *text) {
for (; *text; text++) {
*text = (char) toupper((unsigned char) *text);
}
}
int ci_compare(const char *a, const char *b) {
while (*a && *b) {
int x = tolower((unsigned char) *a);
int y = tolower((unsigned char) *b);
if (x != y) {
return (x > y) - (x < y);
}
a++;
b++;
}
return (*a != '\0') - (*b != '\0');
}
Cómo funciona
touppertoma y devuelve un int, así que castea a la entrada y a la salida.- No hay strcmp insensible a mayúsculas portable en ISO C.
- Escribir uno son cuatro líneas, y es exactamente esto.
Palabras clave y builtins usados aquí
charconstforifintreturnunsignedvoidwhile
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 341
- 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 2 en Transformar; paso 11 de 13 en Cadenas y texto.