我正在帮助一个朋友用他在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;
}
这不优雅,但到目前为止一直有效。我的问题是找出用户输入数字的时间。什么是解决这个问题的最佳方法?
我也不知道是否使用find
,begin
和end
之类的内容违反了规范。如果您认为不允许这样做,请告诉我。
这是我第一次编写任何C ++,所以我确信我的代码不符合任何约定。它也可能因为using namespace std;
行而变坏。