0

私のコードの非常に単純化されたバージョン:

#include <iostream>
#include <string>
using namespace std;

int main () {
string name;

cout << "Enter first and last name" << endl;
getline(cin, name);

return 0;
}

ご覧のとおり、ユーザーに空白を含む名前と名前を入力してもらいたいと思います。数字がないか確認したいのですが、入力されている場合はエラーをスローします。入力例は次のようになります。「J0hnSm1th」これはもちろんエラーを表示します。

isAlpha()を使用する必要があることはわかっています。数字だけ、または文字だけを入力した場合は機能しますが、組み合わせた場合は機能しません。

4

3 に答える 3

11

C ++ 11を使用している場合は、を使用してstd::all_of(name.begin(), name.end(), isalpha)ください。

于 2012-05-08T20:32:02.950 に答える
0
#include <cstddef>
#include <string>

bool check_name(const string& str)
{
    for (std::size_t i = 0; i < str.size(); ++i)
        if (!((str[i]>='a' && str[i]<='z') ||
              (str[i]>='A' && str[i]<='Z') ||
               str[i]==' ' || str[i]=='-' ))
        return false;
    return true;
}
于 2012-05-08T20:41:31.797 に答える
0

小文字と大文字の値が同じかどうかを確認できます。アルファベット以外の文字の場合は同じになります

于 2020-07-17T07:08:57.500 に答える