2015-11-04 88 views
0

我只使用C#发现有关此主题的信息,并且使用的是C++。 希望你能帮助我。验证一个字符串中是否只包含C++中的字母

我的代码:

#include <iostream> 
#include <fstream> // Librería para el manejo de archivos 
#include <string> // Librería para el manejo de strings 
#include <stdlib.h> // Librería para el uso de system("cls"); 

int main() 
{ 
    //Variables 
    string NombreJugador; 

/* Content 
------------------------------------------------------------------------*/ 
    do 
    { 
     cout << "Your name: "; 
     cin >> NombreJugador; 
    } while(ValidarNombreJugador(NombreJugador)); 

    return 0; 
} 

/* Function 
------------------------------------------------------------------------*/ 
int ValidarNombreJugador(string NombreJugador) 
{ 
    int Numero; 

    Numero = atoi(NombreJugador.c_str()); 

    if (Numero!=0) 
    { 
     cout << "No puede ingresar numeros, solo letras." << endl; 
     return 1; 
    } 

    else 
    { 
     cout << "Perfecto, tu nombre no tiene numeros." << endl; 
     return 0; 
    } 
} 

我已经在谷歌发现这种方式来验证该名称只能包含字母和数字没有。

问题是,如果你输入“0”,它将它识别为字母,意思是,它返回true。

我应该怎么做才能正确验证字符串只有字母而不是数字?

我是新的使用字符串的方式。

+0

也只测试你的输入不能以数字开头,如果它包含的数字中间或末尾处它通过测试。 – SHR

+1

“只有字母”和“无数字”是不同的东西。你真的想要测试哪一个? –

回答

6

无号码:

if(std::none_of(str.begin(), str.end(), [](unsigned char c){return std::isdigit(c);})) { 
    // stuff 
} 

所有的信件:

if(std::all_of(str.begin(), str.end(), [](unsigned char c){return std::isalpha(c);})) { 
    // stuff 
} 
+0

嗨,谢谢,但是,让我问你一些事情,你的代码是用C++语言写的?...对我来说有点困惑。 –

+0

@RobertGomez是的,这个代码是C++。 –

相关问题