Arreglos C++

Páginas: 8 (1842 palabras) Publicado: 1 de julio de 2013
ARREGLOS CADENA DE CARACTERES
ARREGLOS BIDIMENSIONALES
ARREGLO DE ESTRUCTURAS

Lenguaje de Programación y Programación Estructurada
Profa. Elvia Sánchez Magadán
sm_elvia@hotmail.com

1

Para las cadenas de texto, están formadas por una sucesión de caracteres terminada con un carácter nulo (\0),
de modo que tendremos que reservar una letra mas de las que necesitamos.
Este carácternulo lo utilizaran todas las ordenes estándar que tienen que ver con manejo de cadenas: las que
las muestran en pantalla, las que comparan cadenas, las que dan a una cadena un cierto valor, etc.
Si la cadena contiene espacios, se lee solo hasta el primer espacio. Esto se puede considerar una ventaja o un
inconveniente, según el uso que se le quiera dar.
/* cadenas de texto: scanf *//*---------------------------*/
#include
main()
{
char texto[40]; /* Para guardar hasta 39 letras */
printf("Introduce tu nombre: ");
scanf("%s", texto);
printf("Hola, %s\n", texto);
}

Tema: Cadena de Caracteres
Lenguaje de Programación y Programación Estructurada
Profa. Elvia Sánchez Magadán

CADENA DE CARACTERES

Para acceder a las letras que forman una cadena
Podemos leer (o modificar)una de las letras de una cadena de igual forma que leemos o modificamos los
elementos de cualquier tabla: el primer elemento será texto[0], el segundo será texto[1] y así sucesivamente:
printf("Hola, %s. Tu inicial es %c\n", texto, texto[0]);

2

LONGITUD DE LA CADENA
En una cadena que definamos como “char texto[40]” lo habitual es que realmente no ocupemos las 39 letras
que podríamosllegar a usar. Si guardamos 9 letras (y el carácter nulo que marca el final), tendremos 30
posiciones que no hemos usado. Pero estas 30 posiciones generalmente contendrán “basura”, lo que hubiera
previamente en esas posiciones de memoria, porque el compilador las reserva para nosotros pero no las
“limpia”. Si queremos saber cual es la longitud real de nuestra cadena tenemos dos opciones:
• Podemosleer la cadena carácter por carácter desde el principio hasta que encontremos el carácter nulo (\0)
que marca el final.
• Hay una orden predefinida que lo hace por nosotros, y que nos dice cuantas letras hemos usado realmente
en nuestra cadena. Es “strlen”
/* Longitud de una cadena */
#include
#include
main()
{
char texto[40];
printf("Introduce una palabra: ");
scanf("%s", texto);printf("Has tecleado %d letras", strlen(texto));
}
Como es de esperar, si escribimos “Hola”, esta orden nos dirá que hemos tecleado 4 letras (no cuenta el \0 que
se añade automáticamente al final).
Si empleamos “strlen”, o alguna de las otras ordenes relacionadas con cadenas de texto que veremos en este
tema, debemos incluir , que es donde se definen todas ellas.

Tema: Cadena de CaracteresLenguaje de Programación y Programación Estructurada
Profa. Elvia Sánchez Magadán

FUNCIONES DE CADENAS

3

Asignando a una cadena el valor de otra: strcpy, strncpy; strcat
Si queremos dar a una variable el valor de otra, normalmente usamos construcciones como a =2 ó a = b.
Pero en el caso de las cadenas de texto, esta NO es la forma correcta, no podemos hacer algo como
saludo="hola"ni algo como texto1=texto2. Si hacemos algo así, haremos que las dos cadenas estén en la
misma posición de memoria, y que los cambios que hagamos a una de ellas se reflejen también en la otra. La
forma correcta de guardar en una cadena de texto un cierto valor es:
strcpy (destino, origen);
strcpy (textoDefinitivo, textoProvisional);
Es responsabilidad que en la cadena de destino hayasuficiente espacio reservado para copiar lo que
queremos. Si no es así, estaremos sobrescribiendo direcciones de memoria en las que no sabemos que hay.
Para evitar este problema, tenemos una forma de indicar que queremos copiar solo los primeros n bytes de
origen, usando la función “strncpy”, así:
strncpy (destino, origen, n);
/* Tomar 4 letras de una cadena */
#include
#include
main()
{
char...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Arreglos c#
  • Arreglos en c
  • Arreglos en C++
  • Arreglos c
  • Arreglos En C++
  • arreglos c++
  • Funciones, Arreglos De c
  • Arreglos UnidimEnsionales En C

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS