我需要帮助...如何让这个程序读取人物类型为字符串并查看字符串是否相等?
#include <iostream>
using namespace std;
int main()
{
char name;
cout << "Type my name is:";
cin >> name;
if
name ==char('Mike') //this is where i think the problem is...
cout << "congrats";
else
cout << "Try again";
}
答案 0 :(得分:1)
您是否尝试过在c ++中使用std :: string?
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Type my name is:";
cin >> name;
if (name == "Mike"))
cout << "congrats";
else
cout << "Try again";
}
答案 1 :(得分:1)
#include <iostream>
int main()
{
std::string name;
std::cout << "Type my name is:";
std::cin >> name;
if (name == "Mike") // Compare directly to the string "Mike"...
std::cout << "congrats";
else
std::cout << "Try again";
}
我认为使用std::
代替using namespace std
总是更好的习惯。
答案 2 :(得分:1)
您的问题是char
是字符变量,而不是字符数组。如果要创建“c-string”(字符集合),请使用char name[20]
。要创建字符串对象,请使用string name
。不要忘记#include <string>
。这是一个简短的字符串教程:
http://www.cplusplus.com/doc/tutorial/ntcs/
如果要使用c字符串,则必须使用strcmp(name,"Mike")
来比较两个字符串。如果两个字符串不同,则返回true,所以要小心。
#include <iostream>
using namespace std;
int main()
{
char name[20];
cout << "Type my name is:";
cin >> name;
if (!strcmp(name,"Mike")) //C string equality tester
cout << "congrats";
else
cout << "Try again";
}
字符串更容易使用,因为您可以使用等于运算符==
。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Type my name is:";
cin >> name;
if (name == "Mike") //Tests for equality using strings
cout << "congrats";
else
cout << "Try again";
}
另外,请注意您的引号。单引号('a'
)用于字符,双引号("Mike"
)用于字符数组(单词,句子等)
答案 3 :(得分:0)
int main()
{
string name;
string myname("Mike");
cout << "Type my name is:";
cin >> name;
if(name ==myname) //this is where i think the problem is...
{
cout << "congrats";
}
else
cout << "Try again";
}
这应该这样做。但我相信你不想只为硬编码“迈克”。一个很好的改进是从文件中获取名称然后进行比较。另请注意,string ==运算符区分大小写,因此“Mike”!=“mike”
答案 4 :(得分:0)
char
是一个字符,将所有char
替换为std::string
,并将#include <string>
添加到代码的开头。 std::string
将保存任意长度的字符串。
if
之后是大括号:if(...)
。在您的情况下if(name == char('Mike'))
或上述if(name == std::string('Mike'))
的建议。
在C和C ++中,两个引号'
和"
是不同的。您可以将'
用于单个字符,将"
用于字符串。所以需要if(name == std::string("Mike"))
。
您也可以写if(name == "Mike")
。
此外,您应该使用括号来提高可读性并避免错误。在if(...)
之后,如果满足{}
中的条件,您通常会使用if(...)
来封装要执行的指令。您的情况很特殊,因为可以省略括号以获得单个指令。
if(...)
{
...
}
else
{
...
}