我只使用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;
}
}
我在Google上发现这种方式可以验证该名称只包含字母而非数字。
问题是,如果输入“0”,它会将其识别为字母,均值,则返回true。
如何正确验证字符串是否只有字母而不是数字?
顺便说一句,我是新用的。
答案 0 :(得分: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
}