Sie sind auf Seite 1von 19

Concepto :

 Una cadena de Caracteres en el lenguaje del C++


es un vector de tipo unsigned char o simplemente
char donde no es mas que un vector de enteros
donde cada carácter es asociado a un entero de 0
a 255 en el código ASCII.

 char “nombredelacadena” [Limite];

 Ejemplos:

 char cadena[50];
 unsigned char cadena[50];
 Las cadenas de caracteres terminan en un valor
nulo “\0”.

 char cadena[6]={„a‟ , ‟b‟ , ‟c‟ , ‟d‟, ‟e‟,‟\0‟};

 Puesto que cada carácter esta asociado a un


entero en el código ASCII la cadena anterior es
equivalente a :

 char cadena[6]={97 , 98 ,99 ,100,101,0};


Leer y Escribir una Cadena de
Caracteres
 Librería <stdio.h>

#include<stdio.h>
void main ()
{
char cadena[50];
printf("Ingrese Cadena de Caracteres :");
scanf("%s",cadena);
printf("\nCadena Ingresada : %s \n",cadena);
}
 Pero ahora ingrese una cadena de caracteres donde
incluya espacios en blanco el ejemplo anterior solo nos
mostrara la primera palabra o hasta encontrar el primer
espacio en blanco.
 Para solucionar este problema la Librería <stdio.h> nos tiene
una solución la cual se trata de la modificación en el formato
de personalización del scanf.

 Scanf(“%[^\n]”,cadena);

 Esta modificación permite recorrer el vector de caracteres


hasta que encuentra “\n” que se da cuando uno presiona
enter.
Función getchar

 Principalmente la función getchar almacena


cada carácter leído de un texto en la
siguiente posición libre de una matriz de
caracteres por medio de un bucle ,donde
debemos finalizar la cadena con el carácter
“\0”.
#include<stdio.h>
#define long_cad 41
void main ()
{
unsigned char cadena[long_cad];
int i=0,car;
printf("Introducer un Texto :");
//Bucle
while ((car=getchar())!='\n' && i< long_cad-1)
{cadena[i]=car;
i++; //aumenta posiciones de la cadena}
cadena[i]=0;
printf("Texto Introducido: %s \n",cadena);
printf("Longitud del Texto: %i \n",i);
}
Algoritmo para Convertir una cadena a su
valor en el Código ASCII
#include<stdio.h>
#include<iostream.h>
void main ()
{
char cadena[50];
int i=0;
puts("Ingrese Cadena de Caracteres : ");
gets(cadena);
i=0;
while(cadena[i]!=0)
{printf("Caracter %c ,valor ASCII %d \n",cadena[i],cadena[i]);
i++;}
}
Función puts
 Esta función permite mostrar un texto en la pantalla igual
que el “printf” o “cout” pero esta funcion es la mas
recomendada para el uso de cadenas ya que la ultima
posición automáticamente pone el “\0” la cual es la
finalización de la cadena.

puts(“Ingrese cadena:”);
gets(cadena);

Generalmente para los algoritmos de cadenas se


recomienda usar el puts y gets por tu facilidad en el
trabajo con cadena
Función gets
 Es otra forma de leer una cadena de caracteres
esta función también lee los espacios en blanco
hasta encontrar la posición “\0” o 0.

#include<stdio.h>
#include<iostream.h>
void main ()
{
char cadena[50];
printf("Ingrese Cadena de Caracteres :");
gets(cadena);
printf("\nCadena Ingresada : %s \n",cadena);
cout<<"Cadena Ingresada :"<<cadena<<endl;
}
Limpiar el Buffer
 Cuando ejecutamos un algoritmos es probable que se
queden en memoria algunos caracteres que se escriben
por si solos que por defecto en la siguiente ejecución de
un programa puede afectar a este especialmente en
arreglos o array la solución a esto es limpiar el buffer por
medio de funciones.

 fflush(stdin);
#include<stdio.h>
void main ()
{
int entero;
double real;
char respuesta = 's',cadena[50];
printf("Introducir un N° entero y un N° real: ");
scanf("%d %lf", & entero ,& real);
printf("%d +%f = %f\n\n",entero,real,entero+real);
//LIMPIAMOS BUFFER
fflush(stdin);
printf("Introducir cadena de Texto : \n");
while(respuesta == 's' && gets(cadena)!= NULL)
{printf("%s\n",cadena);
do
{printf("¿Desdea Continuar?([s]i/[n]o)");
respuesta = getchar();
//LIMPIAMOS BUFFER
fflush(stdin);}
while((respuesta != 's') && (respuesta !='n'));
}
}
Funciones de la Biblioteca en C++
Funcion Descripción Ejemplo
strlen Obtiene la longitud de la Longitud=strlen(cadena);
cadena sin contar \0
tolower Convertir un carácter a for(i = 0; cadena[i]; i++)
minúscula cadena[i] =
tolower(cadena[i]);
toupper Convertir un carácter a for(i = 0; cadena[i]; i++)
mayúscula cadena[i] =
toupper(cadena[i]);
Strcpy Copiar Cadenas

Strcmp Comparar cadenas

atoi Convertir un cadena a un


valor int (Entero)
sptrinf Convertir un valor desde
cualquier formato admitido a
una cadena
Algoritmo de Cadenas llamados con
Procedimientos
#include<iostream.h> //cout y cin
#include<stdio.h> //(printf-puts) - (scanf-gets)
#include<string.h> //funciones para cadenas strlen
#include <ctype.h> //funciones para cadenas tolower y toupper
void ingreso();
void contador();
void mayuscula();
void minuscula();

char cadena[50];
void main ()
{
void ingresar(void);
{puts("Ingrese una Cadena de Caracteres: ");
gets(cadena);}
void contador(void);
{
int longitud=0;
longitud=strlen(cadena);
cout<<"\nFuncion 'strlen' N° de Caracteres de la Cadena \n";
cout<<"La Cadena '"<<cadena<<"' Tiene: "<<longitud<<" Caracteres
"<<endl;
}
void mayuscula(void);
{
int i;
//Conversion de uno en uno
for(i = 0; cadena[i]; i++)
cadena[i] = toupper(cadena[i]);
printf("\nFuncion 'toupper',Conversion de una cadena a Mayuscula\n") ;
printf("Cadena Convertida a Mayuscula : %s",cadena);
}
void minuscula(void);
{
int i;
//Conversion de uno en uno
for(i = 0; cadena[i]; i++)
cadena[i] = tolower(cadena[i]);
cout<<"\n\nFuncion 'tolower',Conversion de una cadena a Minuscula\n"
;
printf("Cadena Convertida a Minuscula : %s",cadena);
}
}
Alumno:
 Tasayco Tasayco Jhorman

Das könnte Ihnen auch gefallen