确定C++中用户输入的类型,而无需任何标准库函数

Determine type of user input in C++ without any standard library functions

本文关键字:任何 库函数 标准 类型 C++ 用户 输入 确定      更新时间:2023-10-16

我正在"帮助"一个朋友做一些他想用C++做的事情,但由于限制,我被困住了:他不应该使用任何库函数。目标是获取用户输入并确定输入是大写字母、小写字母、数字还是其他字符(如 *、& 或 #)。

这是我到目前为止所拥有的:

#include<string>
#include<vector>
#include<iostream>
using namespace std;
int main() {
    string x = "";
    vector<string> uppercaseAlphabet = {"A","B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
    vector<string> lowercaseAlphabet = {"a","b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
    cout<<"nEnter a character.n";
    getline(cin, x);
    if(std::find(uppercaseAlphabet.begin(), uppercaseAlphabet.end(), x) != uppercaseAlphabet.end()) {
        cout<<"The input was an uppercase character.";
    }
    if(std::find(lowercaseAlphabet.begin(), lowercaseAlphabet.end(), x) != lowercaseAlphabet.end()) {
        cout<<"The input was a lowercase character.";
    }
    return 0;
}

这并不优雅,但到目前为止它有效。我的问题是找出用户何时输入数字。解决这个问题的最佳方法是什么?

我也不知道我是否通过使用 findbeginend 之类的东西违反了规范。如果您认为这是不允许的,请告诉我。

这是我第一次编写任何C++所以我确定我的代码不遵循任何约定。也可能仅仅因为using namespace std;线而变得糟糕。

我假设输入总是应该是一个字符。您可以通过比较 ASCII 值来确定字符的类型。https://en.wikipedia.org/wiki/ASCII

#include<string>
#include <cstdio>
#include<iostream>
using namespace std;
int main() {
    char x;
    cout<<"nEnter a character.n";
    x=getchar();
    if(x>='A' && x <= 'Z') {cout<<"Uppercase character";}
    else if(x>='a' && x <= 'z') {cout<<"Lowercase character";}
    else if(x>='0' && x <= '9') {cout<<"Number";}
    else {cout<<"Other character";}
    return 0;
}