CARÁCTER (char)

Anuncio
Ingeniería de Sistemas – Técnicas de Programación I
C++
CARÁCTER (char)
char (character) es un tipo de dato que puede almacenar cualquier carácter del código ascii.
Un carácter siempre debe estar entre comillas simples (apóstrofes)
Ejemplos: ‘1’ , ’f’ , ’F’ , ’&’ , ’%’ , ’)’ , ’a’ , ’A’ , ’3’ , ’-’ , ’.’ , ’w’ , ’6’ , ’/’
CODIGO ASCII
A continuación veremos algunos programas con el manejo de caracteres.
Programa que visualiza el mayor de dos caracteres introducidos por teclado
Como cada carácter está asociado a un número decimal del código ascii, el carácter mayor será el carácter
cuyo valor decimal sea mayor, por ejemplo ‘a’ es mayor que ‘A’ porque el valor decimal de ‘a’ es mayor que
el de ‘A’
char a,b;
cin>>a>>b;
if(a>b)
cout<<"el mayor es "<<a;
else
cout<<"el mayor es "<<b;
Ingeniería de Sistemas – Técnicas de Programación I
C++
Programa permite introducir dos números y un signo (operación matemática), si el signo es suma los
números deben sumarse y si el signo es resta los números deben restarse.
int num1,num2,num3;
char signo;
cin>>num1>>num2;
cin>>signo;
if(signo=='+')
{
num3=num1+num2;
cout<<num3;
}
else
{
if(signo=='-')
{
num3=num1-num2;
cout<<num3;
}
else
cout<<"no es suma ni resta";
}
Programa que dado un carácter por teclado visualiza su correspondiente número decimal asociado.
char car;
int num;
cin>>car;
num=(int)(car);
cout<<"su valor decimal es:
"<<num;
Programa que dado un número por teclado visualiza su correspondiente caracter asociado.
char car;
int num;
cin>>num;
car=(char)(num);
cout<<"su valor decimal es: "<<car;
Ingeniería de Sistemas – Técnicas de Programación I
C++
CADENAS
Una cadena es un vector de caracteres, una cadena debe estar encerrada entre comillas dobles.
Por ejemplo una cadena seria: cad=”Hola mundo”
La cadena “hola mundo” está formado por 10 caracteres.
‘H’ ‘o’ ‘l’ ‘a’ ‘ ‘ ‘m’ ‘u’ ‘n’ ‘d’ ‘o’
Posiciones de cada carácter
0
1
2 3
4
5
6
7
8
9
A cada posición de la cadena se la maneja como si fuera una variable de tipo char.
Por ejemplo:
char c;
c=cad[0];
c=cad[3];
c=cad[4];
c tomará el valor de ‘H’
c tomará el valor de ‘a’
c tomará el valor de ‘ ’ (espacio)
CADENAS EN C++
El manejo de cadenas en C++ se la realiza mediante un vector de caracteres como se muestra a
continuación:
char cad[11]=”Hola mundo”;
También se puede manejar cadenas con punteros de cadenas, por ejemplo:
char *cad=”Hola mundo”;
Pero, en este tutorial el manejo de cadenas se realizará mediante la clase string que evita muchos
problemas que existen al manejar cadenas.
Nota.- la clase string no es soportado por cualquier compilador, por ejemplo el compilador de borland
Turbo c++ no soporta.
Pero, si soporta el compilador del “CodeBlock” o el compilador “DevC++”
A continuación y mediante algunos ejemplos iremos viendo algunas funciones de las cadenas.
1. Insertar una palabra por teclado. Se utiliza la función cin>>
#include <iostream>
using namespace std;
int main()
{
string cad;
cin>>cad;
cout<<cad;
return 0;
}
Ingeniería de Sistemas – Técnicas de Programación I
C++
2. Visualizar la longitud de una cadena. Se utiliza la función length(), la misma retorna un valor entero
#include <iostream>
using namespace std;
int main()
{
string cad;
cin>>cad;
int tam=cad.length();
cout<<tam;
return 0;
}
3. Visualizar inversamente una cadena insertada por teclado
string cad;
cin>>cad;
int tam=cad.length();
for(int i=tam-1;i>=0;i--)
cout<<cad[i];
4. Concatenar (unir) tres cadenas
string cad1,cad2,cad3,cad4;
cad1="Ingenieria";
cad2="de";
cad3="Sistemas";
cad4=cad1+” ”+cad2+” ”+cad3;
cout<<cad4<<endl;
5. Cuántas vocales ‘a’ hay en una palabra introducida por teclado.
int cant=0;
string cad;
cin>>cad;
int t=cad.length();
for(int i=0;i<t;i++)
if(cad[i]=='a')
cant++;
cout<<cant;
6. Adición de un carácter al final de una cadena.
Se puede generar una nueva cadena a partir de otra como se muestra en el siguiente ejemplo:
string A,B;
A="alberto";
B=""; //una cadena puede tener el valor de vacío (dos comillas sin nada en medio)
Ingeniería de Sistemas – Técnicas de Programación I
C++
int tam=A.length();
for(int i=0;i<tam;i++)
B=B+A[i]; //A una cadena se le puede añadir al final un carácter
cout<<B;
INSERCION DE UNA FRASE MEDIANTE TECLADO (getline)
La instrucción cin>> solo permite introducir palabras (cadenas sin espacios), para introducir cadenas que
contengan espacios se debe utilizar la instrucción
getline(cin,[cadena])
7. En el siguiente ejemplo se introduce una frase por teclado, posteriormente se visualiza cuantas
palabras hay en la frase.
string cad;
int pal=0;
getline(cin,cad);
int tam=cad.length();
for(int i=0;i<tam;i++)
if(cad[i]==' ')
pal++;
pal++;
cout <<"hay "<<pal<<" palabras";
FUNCIONES DE CADENAS MAS UTILIZADAS EN C++
Operador
compare
Función
Compara 2 cadenas
Tipo
int
find
Verifica si una cadena esta dentro de otra
int
length
substr
Devuelve la longitud de una cadena
Devuelve una subcadena de una cadena
int
string
8.
Devuelve mayor a cero, menor a
cero o igual a cero
Devuelve -1 si no está dentro la
cadena, caso contrario devuelve la
posición donde se encuetra
Programa que visualiza el mayor de 2 cadenas
string A,B;
A="oruro";
B="Oruro";
if(A.compare(B)==0) //devuelve “mayor a 0”, “menor a 0” o “igual a 0”
cout<<"iguales";
else
if(A.compare(B)>0)
cout<<"el mayor es"<<A;
else
Ingeniería de Sistemas – Técnicas de Programación I
C++
cout<<"el mayor es"<<B;
9. Programa que copia una subcadena en otra subcadena.
string A,B;
A="Tortuga";
B=A.substr(3,2); //B tomará el valor de “tu”, a partir de la posición 3, 2 caracteres
cout<<B;
10. Programa que visualiza “esta contenida” si una cadena esta dentro de otra
string A="mariposa";
string B="oso";
int p=A.find(B);
if(p==-1)
cout<<"no esta contenida";
else
cout<<"esta contenida";
Descargar