首页 > 解决方案 > 如何仅在 C++ 中将用户输入限制为数字和字母

问题描述

该程序只需要数字和/或字母作为用户的输入。否则,程序必须终止。我不知道如何将输入仅限于数字和字母。

这是我的程序:

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

int main()
{
    string input, reversed = "";

    cout << "Enter string: "; 
    cin >> input;

    for (int i = input.length() - 1; i < input.length(); i--)
    {
        reversed += input[i];
    }
    cout << reversed << endl;

    if (reversed == input)  cout << "It is a palindrome!"; 
    else            cout << "No, it is not a palindrome!";
    return 0;
}

标签: c++algorithminputstream

解决方案


您可以实现所需的最简单方法是检查每个字符。正如@Pete Becker 指出的那样,您可以使用isalnum来检查字符是数字还是字母字符:

#include <iostream>
#include <string>

int main () {
  std::string s = "Hello W>orld";

  for (auto c : s) {
    if (!isalnum(c)) {
      std::cout << "Found : '" << c << "'" << std::endl;
    }
  }

  return 0;
}

输出:

Found : ' '
Found : '>'

推荐阅读