Clasificar caracteres en C
ctype.h responde qué es un carácter, sin codificar rangos ASCII a mano.
int count_digits(const char *text) {
int digits = 0;
for (const char *p = text; *p != '\0'; p++) {
unsigned char c = (unsigned char) *p;
if (isdigit(c)) {
digits++;
}
}
return digits;
}
void shout(char *text) {
for (char *p = text; *p; p++) {
*p = (char) toupper((unsigned char) *p);
}
}
Cómo funciona
isalpha,isdigiteisspaceclasifican un carácter.toupperytolowerlo convierten.- Pasa el carácter como
unsigned charpara mantenerte en terreno definido.
Palabras clave y builtins usados aquí
charconstforifintreturnunsignedvoid
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 288
- Tokens
- 107
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 71 segundos.
Paso 5 de 5 en Arreglos y cadenas; paso 26 de 35 en Fundamentos del lenguaje.