Curso de C++ (Página 17a)

pagina016b Principal pagina017b

CAPITULO 17a Más librerías estándar: string.h

Librería rutinas de manipulación de cadenas "string.h"

En esta librería se incluyen rutinas de manipulación de cadenas de caracteres y de memoria. De momento veremos sólo algunas de las que se refieren a cadenas.

Función "strlen()"

Calcula la longitud de una cadena.

Sintaxis:

size_t strlen(const char *s);

"strlen" calcula la longitud de la cadena s.

Valor de retorno:

"strlen" devuelve el número de caracteres que hay en s, excluyendo el carácter nulo de terminación de cadena.

Ejemplo:

#include <iostream.h>
#include <string.h>
 
int main() { 
   char *cadena = "Una cadena C++ termina con cero";
 
   cout << "La cadena: [" << cadena << "] tiene " < strlen(cadena) << " caracteres" << endl; 
   return 0; 
} 

Función "strcpy()"

Copia una cadena en otra.

Sintaxis:

char *strcpy(char *dest, const char *orig);

Copia la cadena orig a dest, la copia de caracteres se detendrá cuando sea copiado el carácter nulo.

Valor de retorno:

"strcpy" devuelve el puntero dest.

Ejemplo:

#include <iostream.h> 
#include <string.h>
 
int main() { 
   char *cadena = "Cadena ejemplo"; 
   char cad[32];
 
   cout << strcpy(cad, cadena) << endl; 
   cout << cad << endl; 
   return 0; 
} 

Función "strcmp()"

Compara dos cadenas.

Sintaxis:

int strcmp(char *cad1, const char *cad2);

Compara las dos cadenas, si la cad1 es mayor que cad2 el resultado será mayor de 0, si cad1 es menor que cad2, el resultado será menor de 0, si son iguales, el resultado será 0.

La comparación se realiza carácter a carácter. Mientras los caracteres comparados sean iguales, se continúa con el siguiente carácter. Cuando se encuentran caracteres distintos, aquél que tenga un código ASCII menor pertenecerá a la cadena menor. Por supuesto, si las cadenas son iguales hasta que una de ellas se acaba, la más corta es la menor.

Ejemplo:

#include <iostream.h> 
#include <string.h>
 
int main() { 
   char *cadena1 = "Cadena ejemplo 1"; 
   char *cadena2 = "Cadena ejemplo 2"; 
   char *cadena3 = "Cadena"; 
   char *cadena4 = "Cadena";
 
   if(strcmp(cadena1, cadena2) < 0) 
      cout << cadena1 << " es menor que " << cadena2 << endl; 
   else if(strcmp(cadena1, cadena2) > 0)
           cout << cadena1 << " es menor que " << cadena2 << endl; 
        else
           cout << cadena1 << " es igual que " << cadena2 << endl; 
   cout << strcmp(cadena3, cadena2) << endl; 
   cout << strcmp(cadena3, cadena4) << endl; 
   return 0; 
} 

Función "strcat()"

Añade o concatena una cadena a otra.

Sintaxis:

char *strcat(char *dest, const char *orig);

"strcat" añade una copia de orig al final de dest. La longitud de la cadena resultante será strlen(dest) + strlen(orig).

Valor de retorno:

"strcat" devuelve un puntero a la cadena concatenada.

Ejemplo:

#include <iostream.h> 
#include <string.h>
 
int main() { 
   char *cadena1 = "Cadena de"; 
   char *cadena2 = " ejemplo"; 
   char cadena3[126];
 
   strcpy(cadena3, cadena1); 
   cout << strcat(cadena3, cadena2) << endl; 
   return 0; 
} 

pagina016b Principal pagina017b