Introducción a string.h

string.h es una librería de c++ que contiene funciones que nos facilitan la vida al trabajar con cadenas o strings. Una cadena es un conjunto de caracteres almacenados en una variable.

Deberíamos saber que char es un tipo de dato que almacena un caracter, por lo tanto un arreglo lineal de caracteres es una cadena:

char str[100];

Ahora podemos llenar nuestra cadena..

str ="Soy una cadena";

…y mostrarla

cout << str;

Pero recuerden que no podemos hacer nada de esto si no tenemos incluida la librería string.h. Vamos a ver un programa de ejemplo:

#include<iostream>
#include<cstring>
using namespace std;

int main()
{
    char esunacadena[100] = "Soy una cadena", esunacopia[100];
    strcpy(esunacopia, esunacadena);
    strcat(esunacopia, " - copia");
    cout << esunacadena << endl << esunacopia;
    cin.get();
    return 0;
}
  1. Primero declaramos dos cadenas (‘esunacadena’ y ‘esunacopia’) que pueden tener hasta 100 caracteres, ‘esunacadena’ la llenamos con el texto «Soy una cadena«.
  2. Luego con la función strcpy copiamos el contenido de ‘esunacadena’ a ‘esunacopia’. Ahora las dos cadenas tienen el mismo texto.
  3. Ahora con la función strcat agregamos el texto » – copia» al final de’esunacopia’.
  4. Al final solo mostramos las dos cadenas.

Bastante fácil ¿no? En los próximos días voy a postear otros programas muy sencillos para seguir checando las funciones mas comunes para trabajar con cadenas.

10 comentarios en «Introducción a string.h»

  1. Hola! Gracias por tu estupendo blog que a todos nos está ayudando en este mundo tan grande como es la programación.
    mi pregunta es cómo introducir una cadena con espacios a través del teclado para luego poder utilizar el operador strlen u otro.

    Saludos y gracias

      1. Cadena de texto? si es asi tendrias que ocupar la libreria string.h para facilitar las cosas, la estructura es la siguiente if(strcmp(var1,var2)==0){//accion;} Donde strcmp es la llamada a la funcion string compare, var1 y var2 son las cadenas a comparar, y ==0 para indicar que quieres saber si son iguales.

    1. Esto fuera de codigo, seria logico, si quieres contar las palabras de una oracion, puedes tomar de referencia los espacios, compara celda por celda tu cadena de caracteres, y usa un contador tipo entero, si la celda es igual a un espacio entonces aumenta ese contador en uno (esto haslo en un while para ahorrar lineas)

  2. Un ligero error.
    No puedes hacer esto:
    char str[100];
    str =»Soy una cadena»;
    str es un puntero constante al principio del array. No puedes asignarle la dirección de «Soy una cadena». Para eso necesitas strcpy().
    En c++ se usa la clase string que sí te permite hacerlo.
    Aún así, buen trabajo!

  3. muchisimas gracias amigo!
    que suerte la mia leer tus codigos
    solo el que no quiere aprender no lo hace pero yo si
    trato de aprovechar tus ejercicios…

    una vez mas gracias, contarte que por los momentos apenas ni puedo crear un hola mundo pero ya estoy intentandolo

    saludes desde honduras centroamerica

Replica a Jhonatan Giraldo Cancelar la respuesta