尝试检查输入的文本与我自己的自定义答案

时间:2018-07-10 06:58:01

标签: c++ if-statement cin

这是我尝试拼凑的内容,很遗憾,它没有按照我想要的去做。我希望它所做的是检查输入的文本和我认为正确的几个单词。因此,例如,如果我希望唯一正确的答案是“谢谢”或“请”,我将如何使程序检查用户输入的单词是“谢谢”还是“请”​​?

我觉得我不能只写B == 'funs等。

请帮助我

#include <iostream>
using namespace std;

int main ()
{

string B;

for (;;)
{cout << "enter text here" << '\n' ;
cin >> B ;

if (B == 'fUNS'|| B == 'funs' || B == 'funzies')
{
    cout << "correct!!!!!!" << endl;

    break;
}

else
     {
    cout << "sorry, please try again" << endl;

    continue;


}
}
return 0;
}

2 个答案:

答案 0 :(得分:2)

与某些使用'"来括起一个字符序列的语言不同,它们会产生截然不同的结果。 单引号定义单个字符文字,例如:

char a = 'A';

您可以使用多个字符来定义整数值(尽管这是非标准的):

int a = 'ABCD';

双引号定义了字符串文字,它是数组中的字符序列:

const char str[5] = "ABCD";

请注意,文字的末尾有一个隐藏的空字符,这就是为什么它有5个元素而不是4个元素的原因。字符串文字可与std::string进行比较并分配:

std::string test( "ABCD" );
std::cout << test == "ABCD";
test = "EFGH";
std::cout << test == "ABCD";

答案 1 :(得分:1)

  

我有种不能只写B == 'funs等的感觉。

是的,由于Bstd::string,并且定义了operator==,因此可以。您只需要使用"(用于定义 string 文字)而不是'(用于定义字符文字),例如:

if (B == "fUNS" || B == "funs" || B == "funzies")