Dev - C++ - ayuda con longitud de cadena.

 
Vista:
sin imagen de perfil
Val: 24
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con longitud de cadena.

Publicado por Roberto (7 intervenciones) el 14/11/2020 14:19:25
Saludos a la Comunidad. Tengo un problema cuando introduzco por teclado la cadena "Hola Mundo". La longitud es 10, pero cuando quiero que el programa me la cuente da resultado = 4.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
	int i;
	string palabra;
	printf("Escriba una palabra ");//escibiré "Hola Mundo"
	cin>>palabra;
	printf("La palabra tiene una longitud de %d\n",palabra.size());
	//En la salida el resultado es 4. Pero debería ser 10.
	//Hay un problema en eso.
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con longitud de cadena.

Publicado por Alfil (1444 intervenciones) el 14/11/2020 16:13:56
cin >> palabra; lee la cadena hasta encontrar un blanco, en ese momento deja de leer. Para leer una cadena con blancos incluidos hay que utilizar getline(cin, string);

Por otro lado, si estas usando la biblioteca iostream debes utilizar cout, no printf.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    int i;
    string palabra;
 
    cout << "\nEscriba una palabra ";
    getline(cin, palabra);
 
    cout << "\nLa palabra tiene una longitud de " << palabra.size() << " letras" << endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con longitud de cadena.

Publicado por Rodrigo (539 intervenciones) el 14/11/2020 16:21:21
cin lee hasta el espacio en blanco, lo usa como delimitador y se detiene alli.
Puedes comprobarlo escribiendo en la salida el string que leiste, no solo el tamano. Solo obtendras "Hola".

Para leer sin limite, usa getline(). Aqui se ven varios ejemplos si quieres leer hacia un char[], usa getline tambien para leer hacia un string.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar