cadenas de caracteres en c++
Post on 08-Apr-2015
1.234 Views
Preview:
DESCRIPTION
TRANSCRIPT
Concepto :
Una cadena de Caracteres en el lenguaje del C++es un vector de tipo unsigned char o simplementechar donde no es mas que un vector de enterosdonde cada carácter es asociado a un entero de 0a 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
cadena sin contar \0
Longitud=strlen(cadena);
tolower Convertir un carácter a
minúscula
for(i = 0; cadena[i]; i++)
cadena[i] =
tolower(cadena[i]);
toupper Convertir un carácter a
mayúscula
for(i = 0; cadena[i]; i++)
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
top related