0% encontró este documento útil (0 votos)
228 vistas10 páginas

Guía de funciones de String.h

El documento describe las funciones de la biblioteca string.h en C para manipular cadenas de caracteres. Explica las sintaxis, descripciones y ejemplos de funciones como strcpy(), strcmp(), strlen(), memcpy(), entre otras, que permiten copiar, comparar, buscar, contar caracteres y más operaciones sobre cadenas.

Cargado por

Pablo Palacios
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
228 vistas10 páginas

Guía de funciones de String.h

El documento describe las funciones de la biblioteca string.h en C para manipular cadenas de caracteres. Explica las sintaxis, descripciones y ejemplos de funciones como strcpy(), strcmp(), strlen(), memcpy(), entre otras, que permiten copiar, comparar, buscar, contar caracteres y más operaciones sobre cadenas.

Cargado por

Pablo Palacios
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Libreria String.

h
Funcion: memchr() Sintaxis:

void *memchr(const void *s, int c, size_t n);


Descripcion: Localiza la primera aparicin del carcter c (convertido a unsigned char) en los primeros n caracteres (cada uno interpretado como un unsigned char) del objeto apuntado por s. Ejemplo:

#include <stdio.h> #include <string.h> int main() { char cadena[] = "Erase una vez..."; char *puntero; puntero = (char *)memchr( cadena, 'a', 5 ); printf( "%s\n", cadena); printf( "%s\n", puntero ); return 0; }
Funcion: memcmp() Sintaxis:

int memcmp(const void *s1, const void *s2, size_t n);


Descripcion: Compara los primeros n caracteres del objeto apuntado por s1 (interpretado como unsigned char) con los primeros n caracteres del objeto apuntado por s2 (interpretado como unsigned char). Ejemplo:

#include <stdio.h> #include <string.h>

int main() { char a[3] = { 82, 81, 84 }; char b[3] = { 85, 83, 86 }; int i; for( i=0; i<3; i++ ) printf( "a[%d]=%c ", i, a[i] ); printf( "\n" ); for( i=0; i<3; i++ ) printf( "b[%d]=%c ", i, b[i] ); printf( "\n" ); i = memcmp( a, b, 4 ); printf( "a es " ); if( i < 0 ) printf( "menor que" ); else if( i > 0 ) printf( "mayor que" ); else printf( "igual a" ); printf( " b\n" ); return 0; }
Funcion: memcpy() Sintaxis:

void *memcpy(void *s1, const void *s2, size_t n);

Descripcion: Copia los primeros n caracteres del objeto apuntado por s2 al objeto apuntado por s1.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char a[7] = "abcdefg"; char *ptr; int i; memcpy( ptr, a, 5 ); for( i=0; i<7; i++ ) printf( "a[%d]=%c ", i, a[i] ); printf( "\n" ); for( i=0; i<5; i++ ) printf( "ptr[%d]=%c ", i, ptr[i] ); printf( "\n" ); return 0; }
Funcion: memmove() Sintaxis:

void *memmove(void *s1, const void *s2, size_t n);


Descripcion: Copia los primeros n caracteres del objeto apuntado por s2 al objeto apuntado por s1.Sin embargo, se asegura de que no estn superpuestos. Por esta razn, copia los caracteres a un array/arreglo temporalmente. Despus vuelve a copiar del array temporal al objeto en cuestin.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char a[7] = "abcdefg"; char *ptr; int i; memmove( ptr, a, 5 ); for( i=0; i<7; i++ ) printf( "a[%d]=%c ", i, a[i] ); printf( "\n" ); for( i=0; i<5; i++ ) printf( "ptr[%d]=%c ", i, ptr[i] ); printf( "\n" ); return 0; }
Funcion: memset() Sintaxis:

void *memset(void *s, int c, size_t n);


Descripcion: Copia el valor de c (convertido a unsigned char) en cada uno de los primeros n caracteres en el objeto apuntado por s.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char c = 'F'; char *s; int i; s = (char*)malloc(5*sizeof(char)); memset( s, c, 5 ); for( i=0; i<5; i++ ) printf( "c[%d]=%c ", i, c ); printf( "\n" ); free(s); return 0; }
Funcion: strcat() Sintaxis:

char *strcat(char*s1, const char *s2);


Descripcion: Aade una copia de la cadena apuntada por s2 (incluyendo el carcter nulo) al final de la cadena apuntada por s1. El carcter inicial de s2 sobrescribe el carcter nulo al final de s1.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[11] = "Hola "; char s2[6] = "amigos"; printf( printf( strcat( printf( "s1=%s\t", s1 ); "s2=%s\n", s2 ); s1, s2 ); "s1=%s\n", s1 );

return 0; }
Funcion: strchr() Sintaxis:

char *strchr(char *s, int c);


Descripcion: Localiza la primera aparicin de c (convertido a unsigned char) en la cadena apuntada por s (incluyendo el carcter nulo).

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s[11] = "Hola amigos"; char c = 'a'; printf( "s=%s\t", s );

printf( "c=%c\n", c ); printf( "strchr=%s\n", strchr( s, c ) ); return 0; }


Funcion: strcmp() Sintaxis:

int strcmp(const char *s1, const char *s2);


Descripcion: Compara la cadena apuntada por s1 con la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[5] = "Abeja"; char s2[5] = "abeja"; int i; printf( "s1=%s\t", s1 ); printf( "s2=%s\n", s2 ); i = strcmp( s1, s2 ); printf( "s1 es " ); if( i < 0 ) printf( "menor que" ); else if( i > 0 ) printf( "mayor que" ); else printf( "igual a" ); printf( " s2\n" ); return 0; }
Funcion: strcoll() Sintaxis:

int strcoll(const char *s1, const char *s2);


Descripcion: Compara la cadena apuntada por s1 con la cadena apuntada por s2, ambas interpretadas acordes a la categora LC_COLLATE de la localidad actual.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[5] = "Abeja"; char s2[5] = "abeja"; int i; printf( "s1=%s\t", s1 ); printf( "s2=%s\n", s2 ); i = strcoll( s1, s2 ); printf( "s1 es " ); if( i < 0 ) printf( "menor que" ); else if( i > 0 ) printf( "mayor que" ); else printf( "igual a" );

printf( " s2\n" ); return 0; }


Funcion: strcpy() Sintaxis:

char *strcpy(char *s1, const char *s2);


Descripcion: Copia la cadena apuntada por s2 (incluyendo el carcter nulo) a la cadena apuntada por s1.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s2[8] = "abcdefg"; char s1[8]; strcpy( s1, s2 ); printf( "s2=%s\n", s2 ); printf( "s1=%s\n", s1 ); return 0; }
Funcion: strcspn() Sintaxis:

size_t strcspn(const char *s1, const char *s2);


Descripcion: Cuenta el nmero de caracteres de una subcadena inicial apuntada por s1 que no contenga ninguno de los caracteres en la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[13] = "Hola a todos"; char s2[5] = "abcd"; printf( "s1=%s\n", s1 ); printf( "s2=%s\n", s2 ); printf( "strcspn(s1,s2) = %d\n", strcspn( s1, s2 ) ); return 0; }
Funcion: strerror() Sintaxis:

char *strerror(int errnum);


Descripcion: Convierte el nmero de error en errnum a un mensaje de error (una cadena de caracteres).

Ejemplo:

#include <stdio.h> #include <string.h>

int main() { int errnum; for( errnum=0; errnum<39; errnum++ ) printf( "strerror(%d) = %s\n", errnum, strerror( errnum ) ); return 0; }
Funcion: strlen() Sintaxis:

size_t strlen(const char *s);


Descripcion: Calcula el nmero de caracteres de la cadena apuntada por s.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s[13] = "Hola a todos"; printf( "s=%s\n", s ); printf( "strlen(s) = %d\n", strlen( s ) ); return 0; }
Funcion: strncat() Sintaxis:

char *strncat(char*s1, const char *s2, size_t n);


Descripcion: Aade no ms de n caracteres (un carcter nulo y los dems caracteres siguientes no son aadidos) de la cadena apuntada por s2 al final de la cadena apuntada por s1. El carcter inicial de s2 sobrescribe el carcter nulo al final de s1. El carcter nulo siempre es aadido al resultado. Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[11] = "Hola "; char s2[6] = "amigos"; printf( "s1=%s\t", printf( "s2=%s\n", strncat( s1, s2, 3 printf( "s1=%s\n", return 0; }
Funcion: strncmp() Sintaxis:

s1 ); s2 ); ); s1 );

int strncmp(const char *s1, const char *s2, size_t n);


Descripcion: Compara no ms de n caracteres (caracteres posteriores al carcter nulo no se tienen en cuenta) de la cadena apuntada por s1 con la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[9] = "artesano"; char s2[8] = "artista"; int i; printf( "s1=%s\t", s1 ); printf( "s2=%s\n", s2 ); i = strncmp( s1, s2, 3 ); printf( "Las 3 primeras letras de s1 son " ); if( i < 0 ) printf( "menores que" ); else if( i > 0 ) printf( "mayores que" ); else printf( "iguales a" ); printf( " s2\n" ); return 0; }
Funcion: strncpy() Sintaxis:

char *strncpy(char *s1, const char *s2, size_t n);


Descripcion: Copia no ms de n caracteres (caracteres posteriores al carcter nulo no son copiados) de la cadena apuntada por s2 a la cadena apuntada por s1.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s2[8] = "abcdefg"; char s1[8]; strncpy( s1, s2, 3 ); printf( "s2=%s\n", s2 ); printf( "s1=%s\n", s1 ); return 0; }
Funcion: strpbrk() Sintaxis:

char *strpbrk(const char *s1, const char *s2);


Descripcion: Localiza la primera aparicin de la cadena apuntada por s1 de cualquier carcter de la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() {

char s1[13] = "Hola a todos"; char s2[5] = "deip"; printf( "s1=%s\n", s1 ); printf( "s2=%s\n", s2 ); printf( "strpbrk(s1,s2) = %s\n", strpbrk( s1, s2 ) ); return 0; }
Funcion: strrchr() Sintaxis:

char *strrchr(char *s, int c);


Descripcion: Localiza la ltima aparicin de c (convertido a unsigned char) en la cadena apuntada por s (incluyendo el carcter nulo).

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s[11] = "Hola amigos"; char c = 'a'; printf( "s=%s\t", s ); printf( "c=%c\n", c ); printf( "strrchr=%s\n", strrchr( s, c ) ); return 0; }
Funcion: strspn() Sintaxis:

size_t strspn(const char *s1, const char *s2);


Descripcion: Calcula el nmero de caracteres de una subcadena inicial apuntada por s1 que consiste en todos los caracteres formados en la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[13] = "Hola a todos"; char s2[5] = "Hola"; printf( "s1=%s\n", s1 ); printf( "s2=%s\n", s2 ); printf( "strspn(s1,s2) = %d\n", strspn( s1, s2 ) ); return 0; }
Funcion: strstr() Sintaxis:

char *strstr(const char *s1, const char *s2);

Descripcion: Localiza la primera aparicin en la cadena apuntada por s1 de la secuencia de caracteres (excluyendo el carcter nulo) en la cadena apuntada por s2.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[13] = "Hola a todos"; char s2[3] = "la"; printf( "s1=%s\n", s1 ); printf( "s2=%s\n", s2 ); printf( "strstr(s1,s2) = %s\n", strstr( s1, s2 ) ); return 0; }
Funcion: strtok() Sintaxis:

char *strtok(char *s1, const char *s2);


Descripcion: Rompe la cadena s1 en segmentos o tkens. Esta ruptura destruye s1, en el proceso. La forma de romper la cadena depende de la secuencia de caracteres de la cadena s2. Estos caracteres se denominan [caracteres] delimitadores. La funcin recorrer la cadena en busca de alguno de los delimitadores de la cadena s2. Cuando lo encuentre, el proceso se detiene, ya que tiene un token. Posteriores llamadas a strtok rompern la cadena s1 en otros tkens. Estas llamadas pueden tener otra secuencia de delimitadores.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s1[49] = "Esto es un ejemplo para usar la funcion strtok()"; char s2[4] = " \n\t"; char *ptr; printf( "s1=%s\n", s1 ); ptr = strtok( s1, s2 ); // Primera llamada => Primer token printf( "%s\n", ptr ); while( (ptr = strtok( NULL, s2 )) != NULL ) // Posteriores llamadas printf( "%s\n", ptr ); return 0; }
Funcion: strxfrm() Sintaxis:

size_t strxfrm(char *s1, const char *s2, size_t n);


Descripcion: Transforma la cadena apuntada por s2 y coloca la cadena resultante en el array/arreglo apuntado por s1. La transformacin es tal que, si la funcin strcmp es aplicada a las dos cadenas transformadas, el valor de retorno corresponder a los valores de retorno de la funcin strcoll. No ms de n caracteres son colocados en el array resultante apuntado por s1, incluyendo el carcter nulo. Si n es cero, s1 puede ser un puntero nulo.

Ejemplo:

#include <stdio.h> #include <string.h> int main() { char s2[7] = "abcdefg"; char s1[7]; int i; i = strxfrm( s1, s2, 4 ); printf( "s2=%s\n", s2 ); printf( "s1=%s\tlonguitud=%d\n", s1, i ); return 0; }

También podría gustarte