[ Foro de C++ ]

¿Ayuda con este algoritmo en c++?

19-Jan-2015 02:48
José Diaz
1 Respuestas

necesito que me ayuden con este algoritmo

 
 #include<iostream> 
 #include<string> 
 using namespace std; 
 int main (){ 
 char a;  
 
 do{ 
 cout<<"ingrese nombre"<<endl; 
 cin>>a; 
 } 
 while(a[0]>=48&a[0]<=57); 
 
 
 return 0; 
 } 
 


quiero almacenar nombres en un vector pero que solo acepte nombres cadena de caracteres y si ingreso un numero me vuelva a pedir


lo que ise funciona pero solo para caracteres no para cadenas como le hago para cadenas alguna idea ...


23-Jan-2015 10:36
Nacho Cabanes (+32)

Tienes varios errores de concepto:

- Si quieres leer toda una cadena, deberás usar un dato de tipo "string", no de tipo "char":

 
string texto;
...
cin >> texto;
 


- Para analizar los elementos de la cadena de texto, sí puedes usar corchetes (cuando ya sea una cadena de texto, no antes), pero sólo estás mirando la primera posición, con a[0]. Deberías recorrer todas ellas con un "for", hasta su longitud "length()":

 
for(int i=0; i<texto.length(); i++)  if (a[i] ...
 


Para más detalles, mira el apartado 6.2 del curso:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=494

- Para saber si debes volver a pedir, te interesará tener un "booleano" de control:

 
bool encontradoNumero = false;
do
{
...
}
while (encontradoNumero);
 







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)