Convertir a Mayúsculas y Minúsculas en C

lenguaje c

Convertir una cadena de caracteres en C a mayúsculas y minúsculas es muy sencillo con las siguientes funciones.

Quizás el lenguaje C sea de los complicados que existen en la actualidad, con lo cuál si estas empezando en este mundo de la programación te recomiendo mi curso GRATIS de Introducción a la Programación.

curso introducción a la programación

Cadenas en C

Las cadenas de caracteres (también llamadas cadenas o strings) en el lenguaje C son un tipo particular de vectores, que como su nombre lo dice son vectores de char, con la particularidad que tienen una marca al final de la cadena (el carácter ‘\0’), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles, las simples representan un único carácter.

Algunos ejemplos de declaración se pueden ver a continuación:

char *cadena="";
char cadena1[]="Hola";
char cadena2[]={'H','o','l','a','\0'}; // Igual al anterior
char cadena3[]={'H','o','l','a'}; // Un vector de 4 elementos,con los elementos 'H','o','l' y 'a'
char cadena4[1024]="Una cadena en C";
char cadena[]="";

 

Para ello, se utilizan dos funciones de C (ctype.h) que convierten un único carácter en mayúsculas (toupper) o minúsculas .

Pasar de Mayúsculas a Minúsculas en C

En C existe una función para pasar un carácter de mayúsculas a minúsculas (tolower). La función la podemos usar incluyendo la cabecera de la biblioteca estándar ctype.h.

Antes hemos dicho que una cadena es un conjunto de caracteres, con lo cuál, lo único que tendremos que hacer para convertir una cadena de mayúsculas a minúsculas es recorrer el vector de caracteres y convertir cada uno de ellos, como se muestra a continuación:

void upper_to_lower(char *s){
  int i;
  for (i = 0; s[i] != '\0'; i++)
    s[i] = tolower(s[i]);
}

La función se compone de un bucle que va convirtiendo cada carácter hasta encontrar el final de la cadena (carácter ‘\0’).

Pasar de Minúsculas a Mayúsculas en C

Al igual que en el caso anterior en C también se puede convertir un carácter de minúsculas a mayúsculas (toupper), por lo tanto podemos repetir el mismo proceso pero esta vez pasando cada carácter a mayúsculas.

void lower_to_upper(char *s){
  int i;
  for (i = 0; s[i] != '\0'; i++)
    s[i] = toupper(s[i]);
}

Cabe destacar, que en ambas funciones estamos pasando la cadena por referencia, con lo cual vamos a modificarla.

 

Deja un comentario