Manejo de cadenas en c++

Páginas: 10 (2424 palabras) Publicado: 19 de septiembre de 2012
17. Manejo de cadenas <string.h>
Recordando la presentación de arreglos hecha (capítulo 5) en donde las cadenas están definidas como un arreglo de caracteres o un apuntador a una porción de memoria conteniendo caracteres ASCII. Una cadena en C es una secuencia de cero o más caracteres seguidas por un caracter NULL o \0:
|
Figura 17.1: Representación de un arreglo. |
Es importantepreservar el caracter de terminación NULL, ya que con éste es como C define y maneja las longitudes de las cadenas. Todas las funciones de la biblioteca estándar de C lo requieren para una operación satisfactoria.
En general, aparte de algunas funciones restringidas en longitud (strncat(), strncmp() y strncpy()), al menos que se creen cadenas a mano, no se deberán encontrar problemas. Se deberánusar las funciones para manejo de cadenas y no tratar de manipular las cadenas en forma manual desmantelando y ensamblando cadenas.
17.1 Funciones básicas para el manejo de cadenas
Todas las funciones para manejo de cadenas tienen su prototipo en:
#include <string.h>
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 cadenas no 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 ys2. Devuelve un entero menor, igual o mayor que cero si se encuentraque s1 es, respectivamente, menor que, igual a, o mayor que s2.
* char *strerror(int errnum) -- Devuelve un mensaje de error que corresponde a un 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) -- Comparalos 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 losprimeros 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 arreglodestino. 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 ques2;
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 NULL podrí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.
17.1.1 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 la primera ocurrencia del carácter c en la cadena de caracteres s.
* char...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Manejo de Cadenas
  • Cadenas C++
  • Cadenas c#
  • Cadenas En c#
  • Manejo de la cadena de suministros
  • Manejo de la cadena de suministro
  • Protocolo De Manejo Cadena De Frio
  • C++ Cadena De Caracteres

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS