Buenas estoy hablando por este foro porque tengo una duda ,
estoy intentando comprobar que una cadena de caracteres, introducidas por el usuario, sea alfanumerica. He intentado utilizar la libreria ctype.h con la funcion isalnum pero nada. Os enseño mi programa:
#include <iostream>
#include <ctype.h>
using namespace std;
const int KNAME=32;
struct Hero{
char name[KNAME];
}hero1;
bool nombre ();
int main(){
bool nom;
nom=true;
cout<<"Introduce un nombre alfanumerico: ";
nom=nombre();
if (nom==false)
cout<<"Otra vez";
else
cout<<"good";
return 0;
}
bool nombre(){
int i, aux;
bool cd;
aux=0;
cin.getline(hero1.name, KNAME-1, '\n');
for(i=0;i<KNAME-1;i++){
if(isalnum(hero1.name[i])!=0 || hero1.name[i]==' '){
aux=aux+1;
cd=true;
}
else if (isalnum(hero1.name[i])!=1){
cd=false;
}
}
cout<<aux<<" "<<cd;
return cd;
}
El fallo por lo que he visto se produce en el for pero no se por que.
Gracias por su tiempo