将"Enter Key"值分配给字符串 [C++]

Assigning the "Enter Key" value to a string [C++]

本文关键字:字符串 C++ 分配 Enter Key      更新时间:2023-10-16

在这个相当简单的练习中,我必须接收用户输入,将所述输入存储到字符串中,通过引用将字符串传递给函数,最后修改字符串,以便toupper()函数"解析"每个字符。然而,如果用户插入"q"作为输入,程序将停止说"再见",或者如果他只是按Enter键,程序应该说类似"嘿,这个字符串是空的"的话。现在,这里真正的问题是在最后一部分,因为我的代码无法管理用户只输入Enter Key值的情况(老实说,即使我只是在文本后面加了一堆空格,也不会发生任何事情)

void uppercase(std::string &);
int main(){
using namespace std;
string ex2;
cout << "Exercise 2" <<endl;
while(ex2!="Bye"){
cout << "Enter a string(q to quit): ";
cin >> ex2;
cout << "Was: " << ex2 << endl << "Now is: ";
uppercase(ex2);
}
return 0;
} 
void uppercase(std::string &str){
using namespace std;
if(str[0]=='n')
cout <<"Empty string dude!" << endl;
else{
if(str.length()==1 && str[0]=='q'){ //press 'q' to exit program
str="Bye";
cout << str;
}
else{ //uppercase
for(int i=0;i<str.length();i++){
str[i]=(toupper(str[i]));
}
cout << str <<endl;
}
}
}

我还尝试了compare()函数,甚至将整个字符串与null(毫无意义,但仍然值得一试)和字符串"进行比较;

很抱歉对您的问题解释不正确,请尝试

if( (str.length()==1 && str[0]=='q') || str.length() == 0)
{}

可能会帮你解决的问题