Actualizado el 15 de Junio del 2021 (Publicado el 6 de Diciembre del 2018)
1.271 visualizaciones desde el 6 de Diciembre del 2018
392,0 KB
4 paginas
Creado hace 11a (03/09/2013)
Fundamentos de la programación
5A
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Facultad de Informática
Luis Hernández Yáñez/Pablo Moreno Ger
Universidad Complutense
Cadenas al estilo de C
E/S con cadenas al estilo de C
La biblioteca cstring
Ejemplo
582
583
584
585
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Arrays de caracteres terminados en nulo
cadena
const Max = 15;
typedef char tCadena[Max];
tCadena cadena = "Adiós"; // Inicialización al declarar
Siempre hay al final un carácter nulo (código ASCII 0– '\0')
Indica que en esa posición termina la cadena (exclusive)
En el array caben MAX‐1 caracteres significativos
Longitud máxima de la variable cadena: 14
Nose pueden asignar cadenas literales: cadena = "Hola";
Nicopiar cadenas directamente: cad2 = cad1;
Nicomparar con op. relacionales: if (cad1 < cad2) ...
s \0
5
4
d
1
i
2
A
0
ó
3
11
10
13
12
14
6
7
8
9
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 582
cin >> setw(15) >> cadena;
¡No se comprueba si se leen más caracteres de los que caben!
tCadena cadena;
cin >> cadena; // Se añade un nulo al final
Extractor: la lectura termina en el primer espacio en blanco
setw(): máximo de caracteres a colocar (incluyendo el nulo)
cin.getline(cadena_estilo_C, máx):
Para leer también los espacios en blanco y no más de máx‐1
cin.getline(cad, máx) Cadenas al estilo de C
cin.getline(cad, máx) Cadenas al estilo de C
Cadenas de tipo string
Cadenas de tipo string
cout << cadena << endl; // El nulo no se muestra
cin.getline(cadena, 15); // Hasta 14 caracteres
getline(cin, cad)
getline(cin, cad)
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 583
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
strcpy(cad2, cad1);
cout << "Longitud: " << strlen(cadena);
strlen(cadena): longitud actual de la cadena
strcpy(destino, origen): copia origenen destino
strcat(destino, origen): añade origenal final de destino
strcmp(cad1, cad2): compara lexicográficamente las cadenas
0si son iguales, 1si cad1> cad2ó ‐1si cad1< cad2
. . .
tCadena cad1 = "Hola", cad2 = "Adiós";
strcmp(cad1, cad2) // Devuelve 1 ("Hola" > "Adiós")
tCadena cad1 = "Hola", cad2 = "Adiós";
strcat(cad1, cad2); // cad1 contiene "HolaAdiós"
strcpy(cad, "Me gusta C++");
http://www.cplusplus.com/reference/clibrary/cstring/
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 584
cadenas.cpp
cadenas.cpp
#include <iostream>
using namespace std;
#include <cstring>
int main() {
const int MAX = 20;
typedef char tCad[MAX];
tCad cadena = "Me gusta C++";
cout << cadena << endl;
cout << "Cadena: ";
cin >> cadena; // Lee hasta el primer espacio en blanco
cout << cadena << endl;
cin.sync(); // Sincronizar la entrada
cout << "Cadena: ";
cin.getline(cadena, MAX);
cout << cadena << endl;
cout << "Longitud: " << strlen(cadena) << endl;
strcpy(cadena, "Hola");
...
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 585
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
tCad cadena2 = " amigo";
strcat(cadena, cadena2);
cout << cadena << endl;
if (strcmp(cadena, cadena2) == 0) {
cout << "Iguales";
}
else if (strcmp(cadena, cadena2) > 0) {
cout << cadena << " es mayor que " << cadena2;
}
else {
}
cout << endl;
cout << cadena << " es menor que " << cadena2;
return 0;
}
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 586
Licencia CC (Creative Commons)
Este tipo de licencias ofrecen algunos derechos a terceras personas
bajo ciertas condiciones.
Este documento tiene establecidas las siguientes:
Reconocimiento (Attribution):
En cualquier explotación de la obra autorizada por la licencia
hará falta reconocer la autoría.
No comercial (Non commercial):
La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):
La explotación autorizada incluye la creación de obras derivadas
siempre que mantengan la misma licencia al ser divulgadas.
Pulsa en la imagen de arriba a la derecha para saber más.
Fundamentos de la programación: Cadenas al estilo de C (Anexo)
Página 587
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
l
r
e
G
o
n
e
r
o
M
o
b
a
P
/
z
e
ñ
á
Y
z
e
d
n
á
n
r
e
H
s
i
u
L
Comentarios de: 5A. Cadenas de caracteres al estilo de C (0)
No hay comentarios