我想比较两个用户输入字符串,但不能这样做......
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int _tmain(int argc, _TCHAR* argv0[])
{
string my_string;
string my_string2;
cout<<"Enter string"<<endl;
cin>>my_string;
cout<<"Enter 2nd string"<<endl;
cin>>my_string2;
cout<<my_string<<" "<<my_string2;
strcmp(my_string,my_string2);
int result;
result= strcmp(my_string,my_string2);
cout<<result<<endl;
return 0;
}
此错误正在显示。 错误1错误C2664:'strcmp':无法将参数1从'std :: string'转换为'const char *'c:\ users \ asad \ documents \ visual studio 2008 \ projects \ string \ string \ string.cpp 23 String
答案 0 :(得分:5)
由于您使用的是std::string
,因此不需要strcmp
- 您只需使用<
,==
,!=
等。
答案 1 :(得分:4)
您的包含:
由于您要包含标准标题,因此它们应位于&lt;&gt;
中 #include <string>
#include <iostream>
#include with“”通常用于您自己的头文件,而不是标准头文件。
您正在使用C ++,因此无需使用strcmp。在C ++中,您可以简单地使用==&amp; !=比较两个字符串。
if (my_string == my_string2) result = 0;
else result = 1;
另外,如果要将字符串转换为const char *,可以使用mystring.c_str()
答案 2 :(得分:0)
如果你想使用strcmp注意它需要的参数与你使用的参数不同。
答案 3 :(得分:0)
另一种方法也是
result= strcmp(my_string.c_str(),my_string2.c_str());