J'ai la fonction isnumber() dans mon ctype.h. Je ne trouve pas de références de cette fonction dans les livres que je n'ai pas dans http://www.cplusplus.com/reference/cctype/ pour consulter. Je l'intention de détecter et montrer la différence entre isdigit() et ISNUMBER() par un exemple simple, mais il n'y a pas (d'ailleurs, U + 0C6A, U + 0ED2 et ½ sont indétectables par les fonctions). Y a-t-il une différence? Comment pourrais-je résoudre cela?Quelle est la différence entre isdigit() et isnumber()?
int main(int, char *[])
{
string text("Hello½123, Poly౪ ໒girl0.5!!!");
decltype(text.size()) punct = 0, alpha = 0, number = 0, space = 0, digit = 0, graf = 0;
for(auto i : text) {
if(ispunct(i)){
cout << i << "<punct ";
++punct;
}
if(isalpha(i)) {
cout << i << "<alpha ";
++alpha;
}
if(isnumber(i)) {
cout << i << "<number ";
++number;
}
if(isdigit(i)) {
cout << i << "<digit ";
++digit;
}
if(isgraph(i)) {
cout << i << "<graph ";
++graf;
}
if(isspace(i))
++space;
}
cout << endl << "There is " << endl;
cout << punct << " puncts," << endl;
cout << alpha << " alphas," << endl;
cout << number << " numbers," << endl;
cout << digit << " digits," << endl;
cout << graf << " graphs," << endl;
cout << space << " spaces" << endl;
cout << "in " << text << endl;
return 0;
}
Une partie du résultat:
...
5 numbers,
5 digits,
23 graphs,
2 spaces
in Hello½123, Poly౪ ໒girl0.5!!!
compilateur est que, et sur quel type de machine? – gpvos