Strings en C: strrev, strcmp y strcat explicados
Clase 9 de 12 • Curso de Funciones en C
Contenido del curso
Manejo de funciones en C
Bibliotecas estándar de funciones
Cierre
Domina el manejo de cadenas en C con ejemplos claros usando la librería string.h. Aprende a leer un string, invertirlo con strrev, compararlo con strcmp y unirlo con strcat. Además, refuerza el uso de arrays, operadores de comparación e if/else con código práctico en Visual Studio Code.
¿Cómo manejar strings en C con string.h?
Para trabajar con texto en C necesitas stdio.h y string.h. Un string se guarda como un array de char con tamaño fijo. Luego se imprime con printf usando el formato %s y se puede leer con gets.
- Declarar un array de char con tamaño máximo definido.
- Leer texto con
getsy guardarlo en la variable. - Imprimir con
printfy el especificador %s. - Entender qué es un argumento al pasar variables a funciones.
¿Qué es un array de char y cómo declararlo?
- Un array es una variable con varias celdas que almacenan valores del mismo tipo.
- Un string es una cadena de caracteres almacenada en un array de
char.
#include <stdio.h>
#include <string.h>
int main() {
char string1[60];
printf("Escribe una frase:\n");
gets(string1);
printf("Ingresaste: %s\n", string1);
return 0;
}
¿Cómo leer un string con gets?
gets(string1);toma la línea escrita y la guarda enstring1.- Se pasa la variable como argumento a la función.
¿Cómo imprimir un string con printf?
- Usa
%spara cadenas:printf("Texto: %s\n", string1);. - Buen hábito: termina con salto de línea
\n.
¿Cómo invertir un string con strrev en C?
Invertir una cadena es directo con strrev: cambia el orden de los caracteres. Con un palíndromo como “Anita lava la tina”, al invertir verás cómo se respeta el orden, incluidos los espacios.
#include <stdio.h>
#include <string.h>
int main() {
char string1[60];
printf("Escribe una frase:\n");
gets(string1);
strrev(string1); // reverse
printf("El string al revés es: %s\n", string1);
return 0;
}
- strrev invierte el string en el mismo arreglo.
- Útil para comprobar palíndromos y entender el manejo de índices en un array.
¿Cómo comparar y concatenar strings con strcmp y strcat?
Comparar dos cadenas con strcmp es sencillo: retorna cero si son iguales y uno si son diferentes. Recuerda: C distingue mayúsculas y minúsculas, así que “Hola” y “hola” no son iguales.
#include <stdio.h>
#include <string.h>
char string1[60], string2[60];
int main() {
printf("Escribe una frase:\n");
gets(string1);
printf("Escribe otra frase para comparar:\n");
gets(string2);
if (strcmp(string1, string2) == 0)
printf("Ingresaste dos strings idénticos.\n");
else {
printf("Ingresaste dos cosas distintas.\n");
strcat(string1, string2); // concatenation
printf("Si las unimos, el resultado es: %s\n", string1);
}
return 0;
}
- strcmp compara dos strings y se usa con el operador de comparación
== 0dentro de un if. - if/else controla el flujo según el resultado de la comparación.
- strcat realiza la concatenación: une
string2al final destring1y guarda todo en el primero. - Puedes escribir frases como: “El lenguaje de programación” y “C es el mejor punto” para ver la unión.
¿Quieres practicar más funciones de string.h y combinarlas con if y else? Comparte en los comentarios cuáles usas y qué retos te planteas.