Resumen

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 gets y guardarlo en la variable.
  • Imprimir con printf y 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 en string1.
  • Se pasa la variable como argumento a la función.

¿Cómo imprimir un string con printf?

  • Usa %s para 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 == 0 dentro de un if.
  • if/else controla el flujo según el resultado de la comparación.
  • strcat realiza la concatenación: une string2 al final de string1 y 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.