c++ - 如何仅在 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;
}
解决方案
您可以实现所需的最简单方法是检查每个字符。正如@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 : '>'
推荐阅读
- javascript - 通过提示验证功能
- python - 为什么 Python 内置函数与“is”关键字的交互方式不同?
- shell - 如何使 docker 入口点仅针对某些特定命令以非 root 身份运行
- python - GUI class using functions before class creation
- python - 无法在 Windows 中安装 pycocotools:致命错误 C1083:无法打开包含文件:'io.h':没有此类文件或目录错误:
- ethereum - 在 Truffle 上测试部署的智能合约
- c++ - conditional statement in loop c++
- ajax - Why am I getting 'Symfony2 No route found for "GET /module/%3C" ...', when similar calls work
- mongodb - Formatting MongoDB aggregation for Highcharts Stacked Columns
- html - Can't use column-count in media query