| Usuario |
leer cadena de caracteres |
Desconocido
|
| Enviado - 16/12/2004 |
| ? |
Estoy haciendo ejercicios en los que tratamos cadenas, para ello definimos el texto desde el propio programa, y luego usamos funciones.
char *p="Hola mundo";
mi duda es, como puedo pedir el texto al usuario, y guardarlo como un array de char.
creia que era con la funcion:
cin.getline(char donde lo dejo,caracter limitador);
Tambien he probado con la funcion gets, y me he percatado que asi:
char p[100]
cout<<"teclea frase: "<<;
gets(p)
si que funciona, pero cuando lo quiero utilizar asi
char *p
cout<<"teclea frase: "<<;
gets(*p)
No funciona.
Echarme una mano con este lio por favor.
SALUDOS Y GRACIAS |
| ? |
|
helldaga
9 Mensaje(s)
|
| Enviado - 19/12/2004 |
| ? |
Primero que todo en c++, es mejor utilizar cin.getline(cadena,tama?o); para leer una sarta (cadena de caracteres), ya que controla la cantidad de caracteres que entran en la cadena cuidando que no se pase del tama?o asignado a la misma, lo que no sucede con gets.
En cuanto a porque no le funciona gets(*p), es debido a que lo que ested tiene ahi es tan solo un apuntador a una direcci?n de memoria al cual no se le puede asignar contenido a menos que se reserve de forma din?mica, ejemplo:
#include
#include
void main()
{
char *vec;
vec = new char[10]; /*Reservo memoria para una sarta de m?ximo 9 caracteres ya que el 10 es el caracter nulo*/
cout<<"Digite la cadena: \n";
cin.getline(vec,10); //Leo la cadena
cout<<"La sarta digitada fue:\n"<
getch();
}
SUERTE. |
| ? |
|
Desconocido
|
| Enviado - 22/12/2004 |
| ? |
pero a priori, no se cuanto espacio reservar, ya que no se el tama?o que me va a teclear el usuario.
Es obligatorio crear el array de un tama?o lo sufucientemente grande PARA QUE A TU ENTENDER, nunca sea sobrepasado, o hay alguna forma de dinamicamente segun teclea crear el array con el tama?o justo?
Me explico
char nombre [100]
cout<<"Introduce nombre: ";
cin.getline(nombre,100);
/*si el nombre ocupa 16+1, los restantes hasta 100 se desaprovechan? o quedan libres?*/
SALUDOS y MUCHISIMAS GRACIAS |
| ? |
|
avalanch
2 Mensaje(s) |
| Enviado - 28/12/2004 |
| ? |
Prueba hacerlo asi
string nombre;
cout<<"Digame nombre"<
getline(cin,nombre);
|
| ? |
|
|
|