Vous êtes sur la page 1sur 13

NOMBRE: CHASILLACTA CANENCIA MILTON NICOLAY

AULA:

BLOQUE C SANGOLQUI C304

FECHA:

28 Julio 2014

NRC:

4258

FUNDAMENTOS DE PROGRAMACIN

TTULO:

Librera string.h

C pone a nuestra disposicin una librera centrada en el tratamiento de


cadenas,
la
librera
string.h, es
un
archivo
de
la Biblioteca
estndar del lenguaje de programacin C que contiene las
funciones
y tipos de utilidad para trabajar con cadenas de caracteres. Con ella
podremos realizar prcticamente cualquier tipo de operacin con cadenas.
Tambin cuenta con procedimientos para manejar memoria.
Las funciones declaradas en string.h se han hecho muy populares, por lo que
estn garantizadas para cualquier plataforma que soporte C. Adems, las
funciones para cadenas de caracteres slo trabajan con conjuntos de
caracteres ASCII o extensiones ASCII compatibles.

Constantes y tipos

NOMBR
E

NULL

DESCRIPCIN

Macro que representa la constante puntero nulo; representa un


valor de puntero que no apunta a ninguna direccin vlida de

objeto alguno en memoria

size_t

Tipo entero sin signo (positivo); es el tipo devuelto por el


operador sizeof

Funciones

NOMBRE
S

DESCRIPCIN

memcpy

Copia n bytes entre dos reas de memoria que no deben


solaparse

memmo
ve

Copia n bytes entre dos reas de memoria; al contrario


que memcpy las reas pueden solaparse

memchr

Busca un valor a partir de una direccin de memoria dada y


devuelve un puntero a la primera ocurrencia del valor buscado
o NULL si no se encuentra

memcmp

Compara los n primeros caracteres de dos reas de memoria

memset

Sobre escribe un rea de memoria con un patrn de bytes dado

strcat

Aade una cadena al final de otra

strncat

Aade los n primeros caracteres de una cadena al final de otra

strchr

Localiza un carcter en una cadena, buscando desde el principio

strrchr

Localiza un carcter en una cadena, buscando desde el final

strcmp

Compara dos cadenas alfabticamente ('a'!='a')

strncmp

Compara los n primeros caracteres de dos cadenas


numricamente ('a'!='a')

strcoll

Compara dos cadenas segn la colacin actual ('a'=='A')

strcpy

Copia una cadena en otra

strncpy

Copia los n primeros caracteres de una cadena en otra

strerror

Devuelve la cadena con el mensaje de error correspondiente al


nmero de error dado

strlen

Devuelve la longitud de una cadena

strspn

Devuelve la posicin del primer carcter de una cadena que no


coincide con ninguno de los caracteres de otra cadena dada

strcspn

Devuelve la posicin del primer carcter que coincide con alguno


de los caracteres de otra cadena dada

strpbrk

Encuentra la primera ocurrencia de alguno de los caracteres de


una cadena dada en otra

strstr

Busca una cadena dentro de otra

strtok

Parte una cadena en una secuencia de tokens

strxfrm

Transforma una cadena en su forma de colacin (??)

strrev

Invierte una cadena

Extensiones para C SIO

NOMB
RE

DESCRIPCIN

ESPECIFICACIN

strdup

Hace un duplicado de la cadena


dada reservando dinmicamente
la memoria necesaria

POSIX; originalmente una


extensin BSD

strcpy s

Variante de strcpy que verifica los


lmites

ISO/IEC WDTR 24731

mempc
py

Variante de memcpy que


devuelve un puntero al byte
siguiente al ltimo byte escrito

GNU

memcc
py

Variante de memcpy que para al


encontrar un byte determinado

UNIX 98?

strerror
Anlogo a strerror_r(thread-safe)
r

GNU, POSIX

strlcpy

Variante de strcpy que verifica los


lmites

originalmenteOpenBSD,
actualmente
tambinFreeBSD, Solaris, OS X

strtok r

Versin thread-safe destrtok

POSIX

strsign
al

Anlogamente a strerror,
devuelve la cadena
representacin de la
sealsig (no thread safe)

BSDs, Solaris, Linux

Cadena de Caracteres

Una cadena es un conjunto de caracteres, el cual cada caracter se encuentra


en una posicin determinada dentro de la cadena. Se puede utilizar una
cadena general o una cadena fija de un nmero determinado de caracteres,
estas se declaran en el siguiente formato:
Ejemplo:
char* var_cadena; // declaracin de una cadena de hasta 255
caracteres
char cadena[N]; // declaracin de una cadena de N caracteres

La librera de manejo de cadenas string.h es un conjunto de funciones tiles


para manipulacin de datos de cadenas, entre ellas tenemos:

Ejemplos:
#include <stdio.h>
#include <string.h>
char completo [80];
char nombre[32] = "Pedro";
char apellidos [32] = "Medario Arenas";
main()
{
/* Construye el nombre completo */
strcpy ( completo, nombre );
strcat ( completo, " ");
strcat ( completo, apellidos );

/* completo <- "Pedro" */


/* completo <- "Pedro " */
/* completo <- "Pedro
Medario Arenas" */

printf ( "El nombre completo es %s\n", completo );


}
Funcin strlen()
Calcula la longitud de una cadena.
Sintaxis:

size_t strlen(const char *s);


strlen calcula la longitud de la cadena s.
Valor de retorno:
strlen devuelve el nmero de caracteres que hay en s, excluyendo el carcter
nulo de terminacin de cadena.

Ejemplo:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char *cadena = "Una cadena C++ termina con cero";
cout << "La cadena: [" << cadena << "] tiene "
<< {f:strlen}(cadena) << " caracteres" << endl;
return 0;
}

Funcin strcpy()
Copia una cadena en otra.
Sintaxis:
char *strcpy(char *dest, const char *orig);
Copia la cadena orig a dest, la copia de caracteres se detendr cuando sea
copiado el carcter nulo.
Valor de retorno:
strcpy devuelve el puntero dest.
Ejemplo:
#include <iostream>

#include <cstring>
using namespace std;
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.

Ejemplo:
#include <iostream>
#include <cstring>
using namespace std;
int main() {

char
char
char
char

*cadena1
*cadena2
*cadena3
*cadena4

=
=
=
=

"Cadena ejemplo 1";


"Cadena ejemplo 2";
"Cadena";
"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.
Ejemplo:
#include <iostream>
#include <cstring>
using namespace std;
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.
Ejemplo:
#include <iostream>
#include <cstring>
using namespace std;
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.
Ejemplo:
#include <iostream>

#include <cstring>
using namespace std;
int main() {
char *cadena1
char *cadena2
char *cadena3
char *cadena4

=
=
=
=

"Cadena ejemplo 1";


"Cadena ejemplo 2";
"Cadena";
"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.
Ejemplo:
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char *cadena1 = "Cadena de";
char *cadena2 = " ejemplo";
char cadena3[126];
strcpy(cadena3, cadena1);

cout << strncat(cadena3, cadena2, 5) << endl;

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 extrado, oNULL cuando no quedan
smbolos.
Ejemplo:
#include <cstring>
#include <iostream>
using namespace std;
int main() {
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;
}

Bibliografa

a. http://programacion1-teoria.wikispaces.com/Lenguaje+C
b. http://teoria-de-programacion.globered.com/categoria.asp?idcat=33
c. http://c.conclase.net/curso/?cap=006#inicio
d. http://www.taringa.net/posts/ciencia-educacion/15391497/C--Declaracion-de-variables.html

e. http://ccodigo.wordpress.com/tag/string-h/
f. http://sopa.dis.ulpgc.es/fso/cpp/intro_c/introc53.htm
g. http://fcqi.tij.uabc.mx/usuarios/cgaxiola/prog_p7.pdf
h. http://es.wikipedia.org/wiki/String.h
i. http://arduino.cc/en/pmwiki.php?n=Tutorial/TextString
j. http://c.conclase.net/curso/?cap=902f

Vous aimerez peut-être aussi