[ Foro de C++ ]
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 ...
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.)