8
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> int strcmp(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).

Taller 1 de estructuras

Embed Size (px)

Citation preview

Page 1: Taller 1 de estructuras

strchr #include <string.h>char *strchr(const char *cad, int c);strchr() encuentra la primera aparición de c en cad y devuelve unpuntero a la primera aparición de c en cad. Si c no se encuentra, devuelveun cero (NULL).printf(“%s”, strchr(“Salario mensual = $85725”, ´$´));visualizará $85725char *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 alfinal 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>int strcmp(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 < bi = strcmp(“MNP”, “mnp”); // resultado < 0i = strcmp(“abc”, “abc”); // resultado = 0i = strcmp(“xy”, “abc”); // resultado > 0char 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 nombrestrcat(nombre,ultimo); // ultimo se concatena a nombre// la cadena nombre será “Bob Marley”Funciones relacionadas: strcpy, strdup, strncat, strncpy.

Page 2: Taller 1 de estructuras

strcmpi #include <string.h>int strcmpi(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 > cad2v = 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 acad. 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:%s\n”, cad1_copia);return 0;}

strcoll #include <string.h>int strcoll(const char *cad1, const char cad2);Compara cad1 con cad2. Devuelve un valor.< 0 si cad1 < cad2= 0 si cad1 = cad2> 0 si cad1 > cad2if(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 resultanteexcede 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.

Page 3: Taller 1 de estructuras

strerror #include <string.h>char *strerror(int errnum);Obtiene el mensaje de error del sistema correspondiente al número dadoen el argumento errnum. La función strerror() obtiene el mensaje deerror del sistema utilizando el valor en la variable global errno, como elíndice una tabla de errores denominadas sys_errlist, que está declaradoen 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 cualquiercará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 decad2.primero = strcspn(“circunloquio”, “q”);// primero = 8Funciones relacionadas: strpbrk, strspn.

strerror #include <string.h>#include stdio.hchar *strerror(const char *cad);Esta función sirve para generar un mensaje de error definido por elusuario.printf(“%S”, _strerror(“error apertura archivo”));Funciones relacionadas: perror, strerror.

stricmp #include <string.h>it stricmp(const char *cad1, const char *cad2);Esta función se utiliza para comparar una cadena a otra sin tener encuenta el tamaño de las letras. Convierte todos los caracteres alfabéticos decad1 y cad2 en minúsculas; a continuación, se comparan las dos cadenas ydevuelve 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_t strlen(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ñadir1 al valor devuelto por strlen.longitud = strlen(nombre);char s[81] = “Cadena demo”;printf(“La longitud de s es:%d\n” strlen(s));Funciones relacionadas: _fstrlen.

Page 4: Taller 1 de estructuras

strlwr #include <string.h>char *strlwr(char *cad);Convierte una cadena en letras minúsculas. La función devuelve unpuntero 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 ncaracteres de longitud, strncat() truncará la cadena a la longitud de n. Enotro 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>int strncmp(const char *cad1, const char *cad2, size_t n);Compara un número especificado en caracteres de dos cadenas ydevuelve un entero con un valor.< 0 si cad1 < cad2= 0 si cad1 < cad2> 0 si cad1 < cad2char *a = “Mortimer el andaluz”;char *b = “Mortimer el mexicano”;if((strncmp(a, b, 8)) == 0)cout << “Ambas cadenas comienzan con \Mortimer\”;elsecout << “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 otrocarácter). Devuelve un puntero a la cadena cad. El carácter c se utiliza pararellenar 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.

Page 5: Taller 1 de estructuras

strpbrk #include <string.h>char *strpbrk(const char *cad1, const char *cad2);Encuentra la primera aparición en cad1 de cualquiera de los caracteresde cad2. El carácter nulo no se incluye en la búsqueda. Si el carácter noexiste, 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.MackoyFunciones 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´;Funciones relacionadas: strchr.

strrev #include <string.h>char *strrev(char *cad);Invierte los caracteres de la cadena cad. El carácter de terminación nulopermanece en el mismo lugar. strrev() devuelve un puntero a la cadenainversa.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. Terminacuando se encuentra el primer carácter nulo. Devuelve un puntero a la cadena modificada.char *cad = “-----”;strset (cad, ´x´); // cad es ahora xxxxxFunciones relacionadas: strnset.

strspn #include <string.h>sze_t strspn(const char *cad1, constchar *cad2);Localiza la posición del primer carácter de una cadena (cad1) que nopertenece al conjunto de caracteres de otra (cad2).loc = strspn (cad1, blanco);

Page 6: Taller 1 de estructuras

Funciones relacionadas: 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, lafunción strstr devuelve un puntero a la primera aparición de cad2 comouna subcadena 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´;Funciones relacionadas: strchr, strcspn, strpbrk

strtok #include <string.h>char *strtok(char *cad1, const char *cad2);Rompe una cadena en subcadenas (token) utilizando una lista de separadores. Devuelve un puntero a la subcadena actual y un NULL cuando sealcanza el final de la cadena.char *s = “¿Prefiere a Verdi, o a Pucini?”;char *t = “.,!* ”;cout << strtok(s, t) << ´\n´;cout << strtok(NULL, “!”);Funciones relacionadas: strpbrk, strcspn.

strupr #include <string.h>char *strupr(char *cad);Convierte cualquier letra minúscula de la cadena en mayúscula ydevuelve 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”Funciones relacionadas: strlwr, toupper.

strxfrm #include <string.h>size_t strxfrm(char *cad1, char *cad2, size_t n);Convierte cad2 en cad1 basado en información específica local y conun número máximo de caracteres a situar en cad1 de n. En el siguienteejemplo, strxfrm transforma los tres primeros caracteres de cad1 en lostres primeros caracteres de cad2.char *cad1 = “abcdefg”;char *cad2 = “1234567”;clrscr();strxfrm(cad1, cad2, 3);printf(“Transformada: %s\n”, cad1);