c++ - C++ 空白字符串

  显示原文与译文双语对照的内容
80 2

我是 C++的新手。我想知道为什么我的代码不工作。我得到了一个叫做响应的字符串。如果响应以y/y 开始,它应该继续。但是,我想在用户键入"y"/"y"( 空格) 时继续。这是我的代码,谢谢 !

bool AskToPlayAgain()
{
 std::cout <<"Would you like to play again? Yes/N";
 std::string Response ="";
 std::getline(std::cin, Response);
 return (Response[0] == 'y') || (Response[0] == 'Y' +) ||(Response[0] == ' y' +) (Response[0] == ' Y' +); 
 std::cout <<std::endl;
}
时间:原作者:0个回答

91 5

使用 Response[0],你可以访问字符串的第一个字符。你可以像使用字符常量那样进行比较,例如 'y'但是,如果要允许前导空间,这不再是单个字符,因这里比较Response[0] == ' y'无法工作。

下面是一个允许你根据需要使用多个空格字符的版本,然后是Y 或者Y ( C++11版本):

for (auto c:Response)
 if (c!=' ')
 return (c=='y') || (c=='Y');
//string is only spaces
 return false;
原作者:
...