Saltar al contenido

Conversión de Char * a mayúsculas en C

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *