Cadenas de Caracteres en C++

19

description

Explicacion basico de cadenas de caracteres en C++Compilado en BorlandC++

Transcript of Cadenas de Caracteres en C++

Page 1: Cadenas de Caracteres en C++
Page 2: Cadenas de Caracteres en C++

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];

Page 3: Cadenas de Caracteres en C++

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};

Page 4: Cadenas de Caracteres en C++

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);

}

Page 5: Cadenas de Caracteres en C++

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.

Page 6: Cadenas de Caracteres en C++

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.

Page 7: Cadenas de Caracteres en C++

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”.

Page 8: Cadenas de Caracteres en C++

#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);

}

Page 9: Cadenas de Caracteres en C++

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++;}

}

Page 10: Cadenas de Caracteres en C++

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

Page 11: Cadenas de Caracteres en C++
Page 12: Cadenas de Caracteres en C++

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;

}

Page 13: Cadenas de Caracteres en C++

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);

Page 14: Cadenas de Caracteres en C++

#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'));

}

}

Page 15: Cadenas de Caracteres en C++

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

Page 16: Cadenas de Caracteres en C++

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);}

Page 17: Cadenas de Caracteres en C++

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);

}

Page 18: Cadenas de Caracteres en C++

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);

}

}

Page 19: Cadenas de Caracteres en C++

Alumno:

Tasayco Tasayco Jhorman