typestar

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

  1. toupper toma y devuelve un int, así que castea a la entrada y a la salida.
  2. No hay strcmp insensible a mayúsculas portable en ISO C.
  3. Escribir uno son cuatro líneas, y es exactamente esto.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 2 en Transformar; paso 11 de 13 en Cadenas y texto.

← Anterior Siguiente →