0

C ++如何检查cin输入是A-Z模式

我如何检查以下内容

cin >> input;

和 input is A-Z, 表示不是 number , is Ato Z;

4

2 回答 2

5

假设input是一个字符串,您可以检查任何非大写字符,std::find_if以查找不适合的第一个字符。

#include <iostream>
#include <algorithm>
#include <cctype>
#include <string>

int main() {
  std::string input;
  std::cin >> input;
  std::cout << (std::find_if(input.begin(), input.end(), std::isupper) != input.end()) << "\n";
}

如果您有 C++11,可以稍微进一步简化为:

std::all_of(input.begin(), input.end(), std::isupper)
于 2012-07-26T06:44:28.023 回答
1

考虑输入是string

bool flag = true;
for(int i = 0; i < input.length(); ++i) {
 if (input[i] < 'A' || input[i] > 'Z') {
  flag = false;
  break;
 }
}

然后flag显示你想要的。如果您使用其他字符表(ASCII、Unicode 除外),则可以使用isalphafrom cctype

于 2012-07-26T06:38:13.193 回答