funciones
Todas las funciones para manejo de cadenas tienen su prototipo en:
#include
Las funciones más comunes son descritas a continuación:
•
•
•
•
•
•
•
•
•
char *strcpy(const char *dest, const char *orig) -- Copia la cadena de caracteres
apuntada por orig (incluyendo el carácter terminador '\0') al vector apuntado por
dest. Las cadenasno deben solaparse, y la de destino, debe ser suficientemente
grande como para alojar la copia.
int strcmp(const char *s1, const char *s2) -- Compara las dos cadenas de
caracteres s1 y s2. Devuelve un entero menor, igual o mayor que cero si se
encuentra que s1 es, respectivamente, menor que, igual a, o mayor que s2.
char *strerror(int errnum) -- Devuelve un mensaje de error que corresponde aun
número de error.
int strlen(const char *s) -- Calcula la longitud de la cadena de caracteres.
char *strncat(char *s1, const char *s2, size_t n) -- Agrega n caracteres de s2 a s1.
int strncmp(const char *s1, char *s2, size_t n) -- Compara los primeros n caracteres
de dos cadenas.
char *strncpy(const char *s1, const char *s2, size_t n) -- Copia los primeros n
caracteres de s2 a s1.strcasecmp(const char *s1, const char *s2) -- versión que ignora si son mayúsculas
o minúsculas de strcmp().
strncasecmp(const char *s1, const char *s2, size_t n) -- versión insensible a
mayúsculas o minúsculas de strncmp() que compara los primeros n caracteres de
s1.
El uso de muchas funciones es directo, por ejemplo:
char *s1 = "Hola";
char *s2;
int longitud;
longitud = strlen("Hola");/* long = 4 */
(void) strcpy(s2,s1);
Observar que tanto strcat() y strcopy() regresan una copia de su primer argumento, el cual
es el arreglo destino. Observar también que orden de los argumentos es arreglo destino
seguido por arreglo fuente lo cual a veces es una situación para hacerlo incorrectamente.
La función strcmp() compara lexicográficamente las dos cadenas y regresa:
•
•
•Menor que cero -- si s1 es léxicamente menor que s2;
Cero -- si s1 y s2 son léxicamente iguales;
Mayor que cero -- si s1 es léxicamente mayor que s2;
Las funciones de copiado strncat(), strncmp() y strncpy() son versiones más restringidas
que sus contrapartes más generales. Realizan una tarea similar, pero solamente para los
primeros n caracteres. Observar que el caracter de terminación NULLpodría ser violado
cuando se usa estas funciones, por ejemplo:
char *s1 = "Hola";
char *s2 = 2;
int longitud = 2;
(void) strncpy(s2, s1, longitud); /* s2 = "Ho" */
donde s2 no tiene el terminador NULL.
Búsqueda en cadenas
La biblioteca también proporciona varias funciones de búsqueda en
cadenas.
•
•
•
•
•
•
•
char *strchr(const char *s, int c) -- Devuelve un puntero a laprimera ocurrencia del
carácter c en la cadena de caracteres s.
char *strrchr(const char *s, int c) -- Encuentra la última ocurrencia del caracter c en
la cadena.
char *strstr(const char *s1, const char *s2) -- Localiza la primera ocurrencia de la
cadena s2 en la cadena s1.
char *strpbrk(const char *s1, const char *s2) -- Regresa un apuntador a la primera
ocurrencia en la cadena s1 decualquier carácter de la cadena s2, o un apuntador
nulo si no hay un caracter de s2 que exista en s1.
size_t strspn(const char *s1, const char *s2) -- Calcula la longitud del segmento
inicial de s1 que consta únicamente de caracteres en s2.
size_t strcspn(const char *s1, const char *s2) -- Regresa el número de caracteres al
principio de s1 que no coinciden con s2.
char *strtok(char *s1, const char*s2) -- Divide la cadena apuntada a s1 en una
secuencia de ``tokens'', cada uno de ellos esta delimitado por uno o más
caracteres de la cadena apuntada por s2.
•
Las funciones strchr() y strrchr() son las más simples de usar, por
ejemplo:
char *s1 = "Hola";
char *resp;
resp = strchr(s1,'l');
Después de la ejecución, resp apunta a la localidad s1 + 2.
La función strpbrk() es una...
Regístrate para leer el documento completo.