Está en la página 1de 3

Vectores de caracteres: CADENAS

Son vectores que permiten almacenar caracteres, para declarar una cadena se
hace como un arreglo:
char palabra[20];
Para inicializar una cadena:

char palabra[]="hola";

char palabra[]={'h','o','l','a'};

Una particularidad con los vectores de tipo carácter, es que el fin de la cadena
está representado mediante el carácter nulo \0.

Puede usar %s (viene de la palabra string) en printf y scanf. Es interesante


observar que no se necesita guardar una a una las letras!!

main()

{ char nombre[20];

cout<< "Introduzca su nombre :" ;

cin>>nombre; // NO se guardan los espacios

cout<< "El nombre que ha escrito es: " << nombre;

Para poder leer espacios debe utilizar fgets( nombre, tamaño ) en lugar de
scanf y tiene la opción puts(nombre) en lugar del printf, entonces el anterior
programa quedará así:

main()
{ char nombre[20];

cout<< "Introduzca su nombre :" ;

gets(nombre); // Se guardan los espacios

cout<< "El nombre que ha escrito es: " << nombre;

Para poder leer carácter por carácter se puede usar la función getch(), no
imprime en pantalla y gecthe() si imprime en pantalla.
De la siguiente manera, no olvide incluir #include <conio.h>

main()

{ char carac;

cout<< "Introduzca un caracter:" ;

carac=getch(); // NO se muestra en pantalla

cout<< "El caracter que ha escrito es: " << carac;

Se puede definir una función que reciba una cadena y cuente cuantas veces
aparece la letra a en la cadena.

//------------ Cuenta una letra en una cadena --------------


// ENTRADA: Una cadena
// SALIDA: La cantidad de veces que aparece el carácter en la cadena
int contar( char cadena[30], char letra)
{
int res=0,pos=0;
while(cadena[pos]!='\0')
{
if(cadena[pos]== letra)
{
res=res+1;
}
pos=pos+1;
}
return res;
}
// -------------------------- PRINCIPAL ------------------------
main()
{
char palabra[30];
int res;

cout<< "Introduzca una palabra :";


fflush(stdin); // NO OLVIDE con cadenas CHAR
gets(palabra); // Se guardan los espacios

res= contar(palabra, 'a') + contar(palabra, 'e') + contar(palabra, 'i')+


contar(palabra, 'o') + contar(palabra, 'u');
cout<< "La palabra tiene "<< res << “ vocales”;
}
Ejercicios

1. Diseñar una función que retorne la cantidad de veces que aparece un


carácter cualquiera en la cadena

2. Crear un procedimiento que reemplace las letras A de una cadena por


la letra Z

3. Crear un procedimiento que reemplace una letra cualquiera por la letra Z


4. Diseñar un programa que encuentre una letra en una cadena y retorne la
posición de la primera vez que aparece.

5. Diseñar un procedimiento que reciba una palabra y devuelva en otra


cadena la palabra invertida

También podría gustarte