PDF de programación - Manejo de Cadena de Caracteres

Imágen de pdf Manejo de Cadena de Caracteres

Manejo de Cadena de Caracteresgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Marzo del 2018)
1.304 visualizaciones desde el 5 de Marzo del 2018
55,0 KB
4 paginas
Creado hace 11a (11/05/2012)
Manejo de Cadena de Caracteres
Manejo de Cadena de Caracteres
Manejo de Cadena de Caracteres
Manejo de Cadena de Caracteres

Preparado por: J. Huircan

Departamento de Ingeniería Eléctrica

Universidad de La Frontera

2012



Introducción
Las cadenas de caracteres son arreglos unidimensionales usados en C. Estos permiten generar mensajes en
modo texto usando el código ASCII. Sin embargo, los caracteres a bajo nivel siguen siendo tratados como
bytes. El lenguaje C provee una biblioteca para el manejo de las cadenas cuyas funciones están declaradas
en el archivo de cabecera string.h
string.h.
string.h
string.h

Cadena
Las cadenas de caracteres (string) son arreglos que se componen de caracteres alfanuméricos. El final de
una cadena se indica con un caracter especial, éste es un byte compuesto por 8 ceros binarios, es decir
0x00.

void main() {

char cad[10];


}

El tamaño de la cadena debe ser lo suficientemente grande para contener dicho caracter inclusive. Una
cadena declarada como cad[10], podrá contener como máximo 9 caracteres, el último será ocupado por
0x00.


El archivo de cabecera string.h
string.h proporciona una serie de funciones que permiten el manejo de cadenas de
string.h
string.h
caracteres. No existen operadores que permitan comparar cadenas o copiar una cadena en otra, por lo que
se debe hacer uso de las funciones definidas en string.h
string.h.
string.h
string.h

Función
Función
Función
Función
strcpy

strcmp

strlen

strncpy

Descripción
Descripción
Descripción
Descripción
Copia una cadena en otra cadena
Compara dos cadenas
Determina el largo de una cadena
Copia n caracteres de una cadena a otra


La función strcpy es una contracción de la operación strstrstrstring ccccopypypypy. El uso de estas funciones requiere de un
buen manejo de punteros.

Por otro lado, dado que la cadena se define como tipo char, es importante hacer la diferencia por ejemplo
entre 'A' y "A", el primero es el caracter A que se codifica en un byte (0x41) y el segundo elemento es una
cadena que contiene un caracter A y ocupa dos bytes (0x41, 0x00), el carácter y el fin de cadena.

Dado que el final de la cadena contiene el carácter 0x00, si se quiere borrar la cadena, se puede asignar al
primer elemento de la cadena dicho carácter cad[0]=0x00.

Si se define char cad[10], entonces los elemento se individualizan de acuerdo a la Fig.1.



Manejo de cadena de caracteres

Protocolos de Comunicación 2012





¿?

¿?

¿?

¿?

¿?

¿?

¿?

¿?

¿?

¿?

¿?

Cad[0] Cad[1]

Cad[2]

Cad[3]

Cad[4]

Cad[5]

Cad[6]

Cad[7]

Cad[8]

Cad[9]




Donde cad[0] es el primer elemento de la cadena y cad[9] el último. El siguiente código define la cadena y la
inicializa. El primer ejemplo inicializa caracter a caracter.

void main()
{
char cad[10];

cad[0]=0x00; // borra cadena
cad[0]=’H’;
cad[1]=’O’;
cad[2]=’L’;
cad[3]=’A’;
cad[4]=0x00; // fin de cadena
}

El siguiente ejemplo usa la función strcpy.

#include <string.h>
void main()
{
char cad[10];

strcpy(cad[0], “HOLA”);
}



0x48 0x4f 0x4c 0x41 0x00
Cad[0] Cad[1] Cad[2] Cad[3] Cad[4] Cad[5] Cad[6] Cad[7] Cad[8] Cad[9]
O


¿¿

¿¿

¿¿

¿¿

¿¿

¿¿

H

O

L

A

0x00

¿¿

¿¿

¿¿

¿¿

¿¿

¿¿

Cad[0] Cad[1] Cad[2] Cad[3] Cad[4] Cad[5] Cad[6] Cad[7] Cad[8] Cad[9]


El siguiente ejemplo es realiza traspaso entre dos cadenas y finalmente la imprime en pantalla.

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

void main()
{
char cad[10], buf[10];

strcpy(cad, "HOLA"); /* Copia en Cad la cadena "HOLA" */
strcpy(buf, cad); /* Pasa el contenido de cad a buf */

if (!strcmp(buf,cad)) printf("SON IGUALES!");
}

La función strcmp permite comparar dos cadenas de caracteres. Esta comparación se realiza hasta el
caracter 0x00 de final de cadena.



Manejo de cadena de caracteres

Protocolos de Comunicación 2012





Variantes del uso de cadenas
Debido a que el uso de punteros es fundamental es importante establecer su uso en el manejo de cadenas. En las
implementaciones de C la variable puntero se especifica mediante el tipo *identificador luego se tiene y la
asignación de la dirección se hace mediante el operador &. De esta forma se tiene

#include <string.h>

void main()
{
char cad[10], buf[10]; /* cadenas de caracteres */

char *p; /* puntero a char */


p=&cad[0]; /* Asigna la direccion del elemento 0 */
p=cad; /* Idem */

strcpy(cad,”HOLA”); /* son lo mismo */
strcpy(cad[0],”HOLA”);
strcpy(&cad[0],”HOLA”);

strcpy(p,”HOLA”); /* Idem debido a que el argumento de strcpy es un puntero */

strcpy(buf[0],p); /* */

}


void main()
{
char cad[10], buf[10]; /* cadenas de caracteres */

strcpy(cad,”HOLA”); /* inicializando cad */
strcpy(buf[0],cad[2]); /* copiando parte de cad en buf */

}

void main()
{
char cad[10]={“HOLA”}; /* Declarando e iniicalizando */


strcpy(buf,cad); /* copiando de cad en buf */


}


Caracteres especiales
A parte de los caracteres alfanuméricos, es posible el uso de caracteres especiales los cuales son usados por
el código ASCII para tareas especiales. Debido a que la cadena es un arreglo de caracteres, los caracteres
especiales pueden formar parte de la cadena y pueden ser interpretados de acuerdo a ciertas normas
definidas por el usuario.
Tabla
Tabla 2222
Tabla
Tabla

CCCCaraaraaraaracter
cter
cter
cter
‘\r’
‘\n’
‘(cid:1) ’

HEXAHEXAHEXAHEXA
0x0d
0x0A
0x1B

DECDECDECDEC
13
10
27

Nombre
Nombre
Nombre
Nombre
CR
LF
ESC




Manejo de cadena de caracteres

Protocolos de Comunicación 2012




Al ser inicializado como carácter puede usarse el código directo. En una cadena se usaran como “\x0d”, “\x0a”

#include <string.h>

void main(){

char cad[10] ={“hola\xd\xa\x0”};
char buf[10];

strcpy(buf,“hola\xd\xa\x0”);

}



Referencias

[1] Leblanc, G. TurboC para IBM-PC y compatibles





Manejo de cadena de caracteres

Protocolos de Comunicación 2012
  • Links de descarga
http://lwp-l.com/pdf9217

Comentarios de: Manejo de Cadena de Caracteres (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad