Solución:
toupper()
convierte un solo char
.
Simplemente use un bucle:
void func(char * temp) {
char * name;
name = strtok(temp,":");
// Convert to upper case
char *s = name;
while (*s) {
*s = toupper((unsigned char) *s);
s++;
}
}
Detalle: la función de biblioteca estándar toupper(int)
está definido para todos unsigned char
y EOF
. Ya que char
puede estar firmado, convertir a unsigned char
.
Algunos sistemas operativos admiten una llamada de función que hace esto: upstr()
y strupr()
toupper()
funciona solo en un solo carácter. Pero hay strupr()
que es lo que quiere para un puntero a una cadena.
¿Qué tal esta pequeña función? Asume caracteres representados en ASCII y modifica la cadena en su lugar.
void to_upper(char* string)
{
const char OFFSET = 'a' - 'A';
while (*string)
{
*string = (*string >= 'a' && *string <= 'z') ? *string -= OFFSET : *string;
string++;
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)