Está en la página 1de 17

Librera rutinas de manipulacin de cadenas "string.

h"
En esta librera se incluyen rutinas de manipulacin de cadenas de caracteres y de memoria. De momento veremos slo algunas de las que se refieren a cadenas.

Funcin "strlen()"
Calcula la longitud de una cadena. "strlen" devuelve el nmero de caracteres que hay en la cadena, excluyendo el carcter nulo de terminacin 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; }

Funcin "strcpy()"
Copia una cadena en otra. Copia la cadena original a la cadena destino, la copia de caracteres se detendr cuando sea copiado el carcter nulo. Valor de retorno: "strcpy" devuelve el puntero destino. 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; }

Funcin "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 comparacin se realiza carcter a carcter. Mientras los caracteres comparados sean iguales, se contina con el siguiente carcter. Cuando se encuentran caracteres distintos, aqul que tenga un cdigo ASCII menor pertenecer a la cadena menor. Por supuesto, si las cadenas son iguales hasta que una de ellas se acaba, la ms corta es la menor.

Funcin "strcmp()"
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; }

Funcin "strcat()"
Aade o concatena una cadena a otra. Sintaxis: char *strcat(char *dest, const char *orig); "strcat" aade 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.

Funcin "strcat()"
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; }

Funcin "strncpy()"
Copia un determinado nmero de caracteres de una cadena en otra. Sintaxis: char *strncpy(char *dest, const char *orig, size_t maxlong); Copia maxlong caracteres de la cadena orig a dest, si hay ms caracteres se ignoran, si hay menos se rellenar con caracteres nulos. La cadena dest no se terminar con nulo si la longitud de orig es maxlong o ms. Valor de retorno: "strncpy" devuelve el puntero dest.

Funcin "strncpy()"

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

Funcin "strncmp()"

Compara dos porciones de cadenas. Sintaxis: int strncmp(char *cad1, const char *cad2, size_t maxlong); Compara las dos cadenas igual que strcmp, pero slo se comparan los primeros maxlong caracteres.

Funcin "strncmp()"
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 (strncmp(cadena1, cadena2, 6) < 0) cout << cadena1 << " es menor que " << cadena2 << endl; else if (strncmp(cadena1, cadena2, 6) > 0) cout << cadena1 << " es menor que " << cadena2 << endl; else cout << cadena1 << " es igual que " << cadena2 << endl; cout << strncmp(cadena3, cadena2, 5) << endl; cout << strncmp(cadena3, cadena4, 4) << endl; return 0; }

Funcin "strncat()"
Aade o concatena una porcin de una cadena a otra. Sintaxis: char *strncat(char *dest, const char *orig, size_t maxlong); "strncat" aade como mximo maxlong caracteres de la cadena orig al final de dest, y despus aade el carcter nulo. La longitud de la cadena resultante ser strlen(dest) + maxlong. Valor de retorno: "strncat" devuelve un puntero a la cadena concatenada.

Funcin "strncat()"
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, 5) << endl; return 0; }

Funcin "strtok()"
Busca dentro de una cadena conjuntos de caracteres o smbolos (tokens) separados por delimitadores. Sintaxis: char *strtok(char *s1, const char *s2); "strtok" considera la cadena s1 como una lista de smbolos separados por delimitadores de la forma de s2.
La primera llamada a "strtok" devuelve un puntero al primer carcter del primer smbolo de s1 e inserta un carcter nulo a continuacin del smbolo retornado. Las siguientes llamadas, especificando null como primer argumento, siguen dando smbolos hasta que no quede ninguno. El separador, s2, puede ser diferente para cada llamada.

Valor de retorno: "strtok" devuelve un puntero al smbolo extraido, o NULL cuando no quedan smbolos.

Funcin "strtok()"
Ejemplo:
#include <string.h> #include <iostream.h> int main(void) { char entrada[32] = "abc,d,efde,ew,231"; char *p; // La primera llamada con entrada p = strtok(entrada, ","); if (p) cout << p << endl; // Las siguientes llamadas con NULL while (p) { p = strtok(NULL, ","); if (p) cout << p << endl; } return 0;

Gracias por su atencin!

También podría gustarte