Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El lenguaje C++, tiene la clase string, que es un tipo de dato superior al utilizado por el
lenguaje C. El lenguaje C, maneja las cadenas de caracteres como vectores tipo char; esta
guía, utiliza este estilo, para implementar las diferentes formas de manipularlas.
1 #include <iostream>
2
3 using namespace std;
4
5 int main()
6 {
7 char palabra[7];
8 cout << "Escriba un Palabra de Maximo 6 Caracteres: ";
9 cin >> palabra;
10 cout << endl;
11 cout << "La Cuarta Letra es: "<<palabra[3];
12 cout << endl << endl;
13 system("pause");
15 return 0;
15 }
char palabra[6];
c o l o s o \0
Hay una situación especial en el manejo de cadenas y es el hecho que al declarar un arreglo
de tipo char, la instrucción cin, para lectura de datos de este tipo corta la lectura cuando
encuentra un carácter de espacio en blanco, es decir, si se trata de ingresar dos o más
palabras separadas por un espacio, el compilador trunca después de la palabra inicial,
perdiendo el resto. En caso de que la palabra sea mayor que el tamaño del arreglo, asume,
pero emite un mensaje de error similar al mencionado anteriormente.
La solución para evitar este tipo de errores, es utilizar la función getline, su sintaxis es:
cin.getline(nombre_arreglo, tamaño_arreglo);
#include <iostream>
int main()
{
char nombre[30];
cout << "Captura utilizando cin";
cout << endl;
cout << "Digite su nombre: ";
cin >> nombre;
cout << endl;
cout << "Su nombre es: " << nombre;
cout << endl<<endl;
cout << "Captura utilizando cin.getline()";
cout << endl;
//fflush(stdin);
rewind(stdin);
cout << "Digite su nombre otra vez: ";
cin.getline(nombre, 30);
cout << endl;
cout << "Su nombre es: " << nombre;
cout << endl << endl;
system("pause");
return 0;
}
1. Escribir la cadena entre comillas dobles, sin el ‘\0’, aunque manteniendo el tamaño del
vector.
char cadena[5]=”Hola”;
2. Escribir la cadena entre comillas dobles, sin el ‘\0’, y sin especificar el tamaño para el
vector. El compilador tomará el tamaño, reservando también espacio para el ‘\0’.
char cadena[]=”Hola”;
Aunque la segunda forma es la más práctica, ya que nos evita tener en cuenta la cantidad
de caracteres de la cadena con que estamos inicializando, la primera forma será la más
indicada cuando queramos que el vector tenga un tamaño mayor que el de la cadena
asignada, si, por ejemplo, queremos más adelante en el programa, almacenar una cadena
de más caracteres en el mismo vector.
La biblioteca “string” tiene incluidas una gran cantidad de funciones para manipular
cadenas de caracteres. Para poder utilizarlas debemos de incluir el archivo de cabecera
<string>.
#include <string> Algunos de los compiladores, no requieren incluir este archivo para
realizar dichas funciones. Algunas de las funciones más utilizadas son:
#include <iostream>
#include <string>
int main()
{
char texto1[30], texto2[30];
int resp, comp;
cout << "Digite un texto: ";
cin.getline(texto1, 30);
resp = strlen(texto1);
cout << "\nUso de strlen(), para saber la cantidad de caracteres.\n";
cout << "El texto tiene " << resp << " caracteres.\n";
cout << "\nUso de strcpy(), para copiar el texto1 en el texto2.\n";
strcpy_s(texto2, texto1);
cout << "\nEl texto2 es: " << texto2 << '\n';
cout << "\nUso de strcat(), para concatenar texto1 y texto2.\n";
cout << "Digite texto1: ";
cin.getline(texto1, 30);
cout << "Digite texto2: ";
cin.getline(texto2, 30);
strcat_s(texto1, texto2);
cout << "\ntexto1= " << texto1 << '\n';
cout << "\nUso de strcmp(), para comparar texto1 y texto2.\n";
cout << "Digite texto1: ";
cin.getline(texto1, 30);
cout << "Digite texto2: ";
cin.getline(texto2, 30);
comp = strcmp(texto1, texto2);
if (comp == 0)
{