Documento de Arreglos Usando Cadenas PDF
Documento de Arreglos Usando Cadenas PDF
Documento de Arreglos Usando Cadenas PDF
Este carácter nulo lo utilizarán todas las órdenes estándar que tienen que
ver con manejo de cadenas: las que las muestran en pantalla, las que
comparan cadenas, las que dan a una cadena un cierto valor, etc. Por tanto,
si no queremos usar esas funciones y sólo vamos a acceder letra a letra
(como hemos hecho con los números en los últimos ejemplos) nos bastaría
con “char saludo[4]”, pero si queremos usar cualquiera de esta posibilidades
(que será lo habitual), deberemos tener la prudencia de reservar una letra
más de las “necesarias”, para ese carácter nulo, que indica el final de la
cadena, y que todas esas órdenes utilizan para saber cuando deben
terminar de manipular la cadena.
Un primer ejemplo que nos pidiese nuestro nombre y nos saludase sería:
// Introducción a C++
// Ejemplo
// Primer ejemplo de cadenas de texto al estilo C
#include <iostream>
using namespace std;
int main()
{
char texto[40]; // Para guardar hasta 39 letras
cout << "Introduce tu nombre: ";
cin >> texto;
cout << "Hola " << texto << endl;
return 0;
}
Ejercicios propuestos:
// Introducción a C++
// Ejemplo 06.01b:
// Cadenas de texto al estilo C... con funciones de C
#include <cstdio>
int main()
{
char texto[40]; // Para guardar hasta 39 letras
// Introducción a C++
// Ejemplo 06.01c:
// Entrada/salida de enteros al estilo C
#include <cstdio>
int main()
{
int n;
float x;
return 0;
}
Ejercicios propuestos:
// Introducción a C++
// Ejemplo 06.02:
// Cadenas de texto: acceder letra a letra
#include <iostream>
using namespace std;
int main()
{
char texto[40];
return 0;
}
Ejercicio propuesto:
// Introducción a C++
// Ejemplo 06.03:
// Longitud de una cadena
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto[40];
cout << "Introduce una palabra: ";
cin >> texto;
cout << "Has tecleado " << strlen(texto)
<< " letras." << endl;
return 0;
}
Como es de esperar, si escribimos “Hola”, esta orden nos dirá que hemos
tecleado 4 letras (no cuenta el \0 que se añade automáticamente al final).
Ejercicios propuestos:
Es decir, debemos usar una función llamada “strcpy” (string copy, copiar
cadena), que se encuentra también en “string.h”. Vamos a ver dos ejemplos
de su uso:
Para evitar este problema, tenemos una forma de indicar que queremos
copiar sólo los primeros n bytes de origen, usando la función “strncpy”, así:
Vamos a ver un ejemplo, que nos pida que tecleemos una frase y guarde en
otra variable sólo las 4 primeras letras:
// Introducción a C++
// Ejemplo 06.04:
// Tomar 4 letras de una cadena
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto1[40], texto2[40], texto3[10];
return 0;
}
Vamos a ver un ejemplo de su uso, que nos pida nuestro nombre, nuestro
apellido y cree una nueva cadena de texto que contenga los dos, separados
por un espacio:
// Introducción a C++
// Ejemplo 06.05:
// Concatenar dos cadenas
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto1[40], texto2[40];
return 0;
}
Ejercicio propuesto:
Vamos a ver un primer ejemplo que nos pida dos palabras y diga si hemos
tecleado la misma las dos veces:
// Introducción a C++
// Ejemplo 06.06:
// Comparar dos cadenas
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto1[40], texto2[40];
return 0;
}
Podemos mejorarlo ligeramente para que nos diga qué palabra es “menor”
de las dos:
// Introducción a C++
// Ejemplo 06.06:
// Comparar dos cadenas
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto1[40], texto2[40];
if (comparacion==0)
cout << "Son iguales" << endl;
else
if (comparacion>0)
cout << "La primera palabra es mayor" << endl;
else
cout << "La segunda palabra es mayor" << endl;
return 0;
}
Ejercicio propuesto:
// Introducción a C++
// Ejemplo 06.07:
// Buscar una subcadena dentro de otra cadena
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char texto1[40], texto2[40];
return 0;
}
Ejercicio propuesto:
Un programa que te pida una frase y luego varias palabras. Deberá decir si
esas palabaras son parte de la frase o no. Terminará cuando se pulse Intro
sin introducir ninguna palabra (la palabra introducida será una cadena vacía,
de longitud cero).
// Introducción a C++
// Ejemplo 06.08:
// Array de cadenas
#include <iostream>
using namespace std;
int main()
{
char mensajeError[5][80] = {
"Fichero no encontrado",
"El fichero no se puede abrir para escritura",
"El fichero está vacío",
"El fichero contiene datos de tipo incorrecto"
"El fichero está siendo usado"
};
return 0;
}
Ejercicio propuesto:
char nombre[50]="Juan";
Pero cuidado con este último formato: hay que recordar que sólo se puede
usar cuando se declara la variable, al principio del programa. Si ya
estamos dentro del programa, deberemos usar necesariamente la orden
“strcpy” para dar un valor a una cadena de texto.