在没有任何标准库函数的情况下确定C ++中的用户输入类型

时间:2017-10-16 20:28:58

标签: c++ input types

我正在帮助一个朋友用他在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;行而变坏。

1 个答案:

答案 0 :(得分:2)

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

{{1}}