1. strchr #include <string.h>
char *strchr(const char *cad, int c);
strchr() encuentra la primera aparición de c en cad y devuelve un
puntero a la primera aparición de c en cad. Si c no se encuentra, devuelve
un cero (NULL).
printf(“%s”, strchr(“Salario mensual = $85725”, ´$´));
visualizará $85725
char *s*81+ = “Esta es una cadena de prueba”;
char *ptr;
ptr = strchr(s, ´a´);
el valor almacenado en ptr es un puntero a la primera aparición de ´a´.
stpcpy #include <string.h>
char *stpcpy(char *cad1, const char *cad2);
La función stpcpy() copia una cadena en otra. Devuelve un puntero al
final de la cadena copiada. Se devuelve el valor de cad1+strlen(cad2)
stpcpy(orden_dos, “DIR”);
stpcpy(caad1, cad2);
Funciones relacionadas: strcat, strcpy, strncat, strncpy, strdup.
strcmp #include <string.h>
intstrcmp(const char *a, const char *b);
Compara una cadena con otra. Los resultados serían:
> 0 si a > b
= 0 si a == b
< 0 si a < b
i = strcmp(“MNP”, “mnp”); // resultado< 0
i = strcmp(“abc”, “abc”); // resultado = 0
i = strcmp(“xy”, “abc”); // resultado> 0
char s1*80+ “ “Mayo”;
char s2*80+ = “Octubre”;
int j;
j = strcmp(s1, s2);
Funciones relacionadas: strcmpi, stricmp, strnicmp, strncmp.
strcat #include <string.h>
char *strcat(char *cad1, const char cad2);
strcat() concatena (añade) cad1 al final de cad2, terminando la cadena resultante con un
carácter nulo (0).
char nombre*80+ = “Bob”;
char blanco*2+ = “”;
char ultimo*80+ = “Marley”;
...
strcat(nombre,blanco); // blanco se concatena a nombre
strcat(nombre,ultimo); // ultimo se concatena a nombre
// la cadena nombre será “Bob Marley”
Funciones relacionadas: strcpy, strdup, strncat, strncpy.
2. strcmpi #include <string.h>
intstrcmpi(const char *cad1, const char * call2);
Compara una cadena con otra sin diferenciar entre mayúsculas y minúsculas y devuelve un
entero:
< 0 si cad1 < cad2
= 0 si cad1 = cad2
> 0 si cad1 > cad2
v = strcmpi(c1, c2);
Funciones relacionadas: strcmp, stricmp, strncmp, strnicmp.
strdup #include <string.h>
char * strdup(const char *cad);
Asigna memoria y copia una cadena dada en ese espacio. En realidad,
strdup() llama a malloc para asignar suficiente memoria para contener a
cad. Si falla la asignación de memoria, strdup() devuelve un carácter nulo
(NULL).
Leer una cadena y hacer un duplicado.
#include <stdio.h>
#include <string.h>
main()
{
char cad1[80], * cad1_copia;
printf(“Introduzca una cadena:”);
gets(cad1);
cad1_copia = strdup(cad1);
printf(“La cadena duplicada es:%sn”, cad1_copia);
return 0;
}
strcoll #include <string.h>
intstrcoll(const char *cad1, const char cad2);
Compara cad1 con cad2. Devuelve un valor.
< 0 si cad1 < cad2
= 0 si cad1 = cad2
> 0 si cad1 > cad2
if(strcoll(nombre1, nombre2)! = 0)
exit(EXIT_FAILURE);
Funciones relacionadas: setlocate, strcmp, strcmpi, strncmp,
strxfrm
strcpy() #include <string.h>
char *strcpy(char *cad1, const char *cad2);
strcpy() copia cad2 en cad1. Si la longitud de la cadena resultante
excede el tamaño asignado a cad1, puede producir fallos en el programa.
char *a = “Pepe Luis”;
char b[12];
strcpy(b, a);
cout<< b << ´n´;
Funciones relacionadas: strcat, strcup, strncat, strncpy.
3. strerror #include <string.h>
char *strerror(interrnum);
Obtiene el mensaje de error del sistema correspondiente al número dado
en el argumento errnum. La función strerror() obtiene el mensaje de
error del sistema utilizando el valor en la variable global errno, como el
índice una tabla de errores denominadas sys_errlist, que está declarado
en el archivo de cabecera stdlib.h.
errno = 0;
printf (“Error”, strerror(errno);
Funciones relacionadas: perror, _strerror.
strcspn #include<string.h>
size_strcspn(const char *cad1, const char *cad2);
Localiza la posición de la primera aparición en una cadena de cualquier
carácter de otra cadena. Si tiene éxito, la función strcspn devuelve el índice del primer carácter
de cad1, que pertenece al conjunto de caracteres de
cad2.
primero = strcspn(“circunloquio”, “q”);
// primero = 8
Funciones relacionadas: strpbrk, strspn.
strerror #include<string.h>
#include stdio.h
char *strerror(const char *cad);
Esta función sirve para generar un mensaje de error definido por el
usuario.
printf(“%S”, _strerror(“error apertura archivo”));
Funciones relacionadas: perror, strerror.
stricmp #include <string.h>
itstricmp(const char *cad1, const char *cad2);
Esta función se utiliza para comparar una cadena a otra sin tener en
cuenta el tamaño de las letras. Convierte todos los caracteres alfabéticos de
cad1 y cad2 en minúsculas; a continuación, se comparan las dos cadenas y
devuelve un valor entero que indica el orden lexicográfico de cad1 con respecto a cad2.
Si cad1 = cad2 el valor de la función es cero.
Si cad1 < cad2 el valor de la función es menor que cero.
Si cad1 > cad2 el valor de la función es mayor que cero.
Resultado = stricmp(cad1, cad2),
Funciones relacionadas: strcmp, strcmpi, strncmp, strnicmp.
strlen #include <strign.h>
size_tstrlen(const char *cad);
Proporciona la longitud de una cadena cad. El carácter nulo no se incluye en la longitud; en
consecuencia, cuando reserve espacio, recuerde añadir
1 al valor devuelto por strlen.
longitud = strlen(nombre);
char s*81+ = “Cadena demo”;
printf(“La longitud de s es:%dn” strlen(s));
Funciones relacionadas: _fstrlen.
4. strlwr #include <string.h>
char *strlwr(char *cad);
Convierte una cadena en letras minúsculas. La función devuelve un
puntero a la cadena convertida.
char *orden =”SALIR”;
strlwr(orden); // ahora orden = “salir”;
Funciones relacionadas: strupr, toloweer.
strncat #include <string.h>
char *strncat(char *cad1, const char *cad2, size_t n);
La función strncat() añade los primeros n caracteres de cad2 a cad1,
y termina la cadena resultante un carácter nulo. Si cad2 es mayor que n
caracteres de longitud, strncat() truncará la cadena a la longitud de n. En
otro caso, concatenará la cadena completa.
char *a = “Sierra Madre”;
char *b = “de la ciudad de Monterrey”;
cout<<strncat(a, b, 4) << ´n´;
cout<<strncat(a, b) << ´n´;
Funciones relacionadas: strcat, strdup, strcpy, strncpy.
strncmp #include <string.h>
intstrncmp(const char *cad1, const char *cad2, size_t n);
Compara un número especificado en caracteres de dos cadenas y
devuelve un entero con un valor.
< 0 si cad1 < cad2
= 0 si cad1 < cad2
> 0 si cad1 < cad2
char *a = “Mortimer el andaluz”;
char *b = “Mortimer el mexicano”;
if((strncmp(a, b, 8)) == 0)
cout<< “Ambas cadenas comienzan con Mortimer”;
else
cout<< “Estas cadenas no comienzan con Mortimer”;
Funciones relacionadas: strcmp, strcoll, stricmp, strncmp, strnicmp
strnset #include <string.h>
char *strnset(char *cad, int c, size_t n);
Inicializa los caracteres de una cadena a un valor dado (blanco u otro
carácter). Devuelve un puntero a la cadena cad. El carácter c se utiliza para
rellenar la cadena con ese carácter; n es el número de posiciones de caracteres que se han de
inicializar.
printf(“Introduzca una cadena:”);
gets(cadena);
printf(“Introducir un carácter:”);
c = getche();
long = strlen(cadena)/2;
strnset(cadena, c, lon);
Funciones relacionadas: memset, setmem, strset.
5. strpbrk #include <string.h>
char *strpbrk(const char *cad1, const char *cad2);
Encuentra la primera aparición en cad1 de cualquiera de los caracteres
de cad2. El carácter nulo no se incluye en la búsqueda. Si el carácter no
existe, se devuelve un carácter nulo (NULL).
char *s = “Mortimer L.J. Mackoy”;
char *p = strpbrk(s, “L4”);
cout<< p << ´n´; // la salida es L.J.Mackoy
Funciones relacionadas: strchr, strcspn.
strrchr #include<string.h>
char *strrchr(const char *cad, int c);
Encuentra la última aparición del carácter c en cad. Devuelve un punteo a la última aparición
de c o un carácter nulo si c no está en cad.
char *nombrearch = “c: /usr/tst/libro/cap1.txt”;
cout<< (strrchr(nombrearch, ´/´)+1 << ´n´;
Funcionesrelacionadas: strchr.
strrev #include <string.h>
char *strrev(char *cad);
Invierte los caracteres de la cadena cad. El carácter de terminación nulo
permanece en el mismo lugar. strrev() devuelve un puntero a la cadena
inversa.
Aplicación: Invertir una cadena leída del teclado e imprimir el resultado.
#include <stdio.h>
#include <string.h>
main()
{
char demo[80]
printf(“Introduzca una cadena:”);
gets(demo);
strrev(demo);
printf(“La cadena inversa es:n %s |n”, demo);
return 0;
}
Funciones relacionadas: strcpy, strncpy.
strset #include <string.h>
char *strset(char *cad, int c);
Establece todos los caracteres de la cadena cad al valor de c. Termina
cuando se encuentra el primer carácter nulo. Devuelve un puntero a la cadena modificada.
char *cad = “-----”;
strset (cad, ´x´); // cad es ahora xxxxx
Funciones relacionadas: strnset.
strspn #include<string.h>
sze_tstrspn(constchar *cad1, constchar *cad2);
Localiza la posición del primer carácter de una cadena (cad1) que no
pertenece al conjunto de caracteres de otra (cad2).
loc = strspn (cad1, blanco);
6. Funcionesrelacionadas: strcmp, strcspn.
strstr #include <string.h>
char *strstr(const char *cad1, const char *cad2);
Localiza la primera aparición de una cadena en otra. Si tiene éxito, la
funciónstrstr devuelve un puntero a la primera aparición de cad2 como
unasubcadena de cad1. Si la búsqueda falla, se devuelve NULL.
char *s = “Mi autor favorito es Octavio Paz”
char *a = “Octavio Paz”;
cout<< “La subcadena” << a << “se encuentra:”
<<strstr(s, a) << ´n´;
Funcionesrelacionadas: strchr, strcspn, strpbrk
strtok #include <string.h>
char *strtok(char *cad1, constchar *cad2);
Rompe una cadena en subcadenas (token) utilizando una lista de separadores. Devuelve un
puntero a la subcadena actual y un NULL cuando se
alcanza el final de la cadena.
char *s = “¿Prefiere a Verdi, o a Pucini?”;
char *t = “.,!* ”;
cout<<strtok(s, t) << ´n´;
cout<<strtok(NULL, “!”);
Funcionesrelacionadas: strpbrk, strcspn.
strupr #include <string.h>
char *strupr(char *cad);
Convierte cualquier letra minúscula de la cadena en mayúscula y
devuelve un puntero a la cadena convertida (sólo alfabeto inglés).
La función strupr y su homónima strlwr no forman parte de la biblioteca ANSI C. En estos
casos, utilice las funciones toupper y tolower.
strupr(“sierra madre”); // “SIERRA MADRE”
Funcionesrelacionadas: strlwr, toupper.
strxfrm #include <string.h>
size_tstrxfrm(char *cad1, char *cad2, size_t n);
Convierte cad2 en cad1 basado en información específica local y con
un número máximo de caracteres a situar en cad1 de n. En el siguiente
ejemplo, strxfrm transforma los tres primeros caracteres de cad1 en los
tres primeros caracteres de cad2.
char *cad1 = “abcdefg”;
char *cad2 = “1234567”;
clrscr();
strxfrm(cad1, cad2, 3);
printf(“Transformada: %sn”, cad1);