Arreglos Unidimensionales Cadenas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Arreglos unidimensionales: Cadenas

Cadena de caracteres. (string). Es una secuencia ordenada de longitud arbitraria (aunque


finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto; análogas a una
frase o a una oración.

En general, una cadena de caracteres es una sucesión de caracteres:


(letras, números, espacio, signos o símbolos).

En programación, si no se ponen restricciones al alfabeto, una cadena podrá estar formada


por cualquier combinación finita de todo el juego de caracteres disponibles (las letras de la
'a' a la 'z' y de la 'A' a la 'Z', los números del '0' al '9', el espacio en blanco ' ', símbolos
diversos '!', '@', '%', etc).

En este ámbito se utilizan normalmente como un tipo de dato predefinido, para palabras,
frases o cualquier otra sucesión de caracteres. En este caso, se almacenan en un vector de
datos, o matriz de datos de una sola fila (array en inglés). Las cadenas se pueden almacenar
físicamente seguidas o enlazados letra a letra.

Generalmente son guardados un carácter a continuación de otro por una cuestión de


eficiencia de acceso.

Para usar una cadena en lenguaje c, necesitamos de definir un arreglo unidimensional de


tipo char y utilizamos el parámetro %s para la lectura y escritura de la cadena.

Ejemplo 1; Captura una cadena, el nombre de una persona e imprimirla en pantalla.

#include <stdio.h>
#include <stdlib.h>

int main()
{

char cadena[20];

printf("Inserta Cadena\n");
scanf("%s",&cadena);
printf("La cadena es %s",cadena);

return 0;
}

Ejercicio 1; Programa que capture tu nombre, apellido paterno, apellido materno, edad
estatura, colonia, calle, numero exterior e interior e imprimir la información en pantalla.
Recuerde que deberá de definir un arreglo de caracteres para cada campo de información.

El símbolo '\0'
El '\0' es el símbolo de fin de cadena, significa que ahí termina la cadena que hemos
capturado, este fin de cadena nos ayuda a poder tratar con una cadena de cualquier
longitud.

Supongamos que usted captura la cadena juan, internamente en la computadora lo


capturaría de la siguiente forma j u a n \0, donde j ocupa el lugar 0 de la cadena, u el lugar
1 de la cadena, a el lugar 2 de la cadena y n el lugar 3 de la cadena, ya que recuerde que los
arreglos en c, empiezan desde la posición 0 hasta el tamaño -1, en el caso del fin de cadena
'\0' quedaría en la posición 4 de la cadena tratada.

Ejemplo 2; Convertir una cadena de minúscula a mayúsculas.


juan
JUAN

#include <stdio.h>
#include <stdlib.h>

int main()
{
char cadena[20];
int i;

printf("Inserta Cadena\n");
scanf("%s",&cadena);

//convierte de minusculas a mayusculas


for(i=0;cadena[i]!='\0';i++)
{
cadena[i]=cadena[i]-32; // REVISE EL CODIGO ASCII PARA
} //COMPRENDER PORQUE RESTAR 32

//imprime de minusculas a mayusculas


for(i=0;cadena[i]!='\0';i++)
{
printf("%c",cadena[i]);
}

printf("La cadena en mayusculas es %s ",cadena);

return 0;
}

Análisis del código.

for(i=0;cadena[i]!='\0';i++)
{
cadena[i]=cadena[i]-32;
}

El for, trabaja desde la posición cero hasta que sea diferente al fin de cadena \0, si usted
trabaja con la cadena juan, llegara hasta la posición 4 que es donde se encuentra el fin de
cadena, si fuera trabajara con la cadena pedro, el fin de cadena se encontraría en la
posición 5.
La letra a en el código ASCII tienen un valor de 97 y la letra A en el código ASCII tiene un
valor de 65, si ustedes ven hay una diferencia entre 97 y 65 es de 32, por eso se resta 32 a la
cadena.

En caso de la letra z en el código ASCII tienen un valor de 122 y la letra Z en el código


ASCII tiene un valor de 90, si ustedes ven hay una diferencia entre 122 y 90 es de 32, por
eso se resta 32 a cada carácter que encuentre, entre cada minuscula y mayúscula hay una
diferencia de 32.

Ejemplo 3; Cadena impresa al revés o invertida.

juan
nauj

#include <stdio.h>
#include <stdlib.h>

int main()
{

char cadena[20],copia[20];
int i,cont;

printf("Inserta Cadena\n");
scanf("%s",&cadena);

//cuenta caracteres
cont=0;
for(i=0;cadena[i]!='\0';i++)
{
cont=cont+1;
printf("%d %c\n",i,cadena[i]);
}

printf("tiene %d caracteres\n",cont);
//cadena alrevez
for(i=0;cadena[i]!='\0';i++)
{
copia[i]=cadena[cont-(i+1)];
}
copia[cont]='\0';

printf("La cadena alreves es %s\n",copia);

return 0;
}

Ejercicio 2; Analice el código de forma detenida, y realice sus anotaciones para comprender
e inferir cada línea de código, se recomienda hacer prueba de escritorio, podría trabajar con
la cadena juan y después trabajar con la cadena que guste.

También podría gustarte