字符串比较

时间:2010-04-23 18:07:01

标签: c++ string-comparison strcmp

我想比较两个用户输入字符串,但不能这样做......

#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

4 个答案:

答案 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注意它需要的参数与你使用的参数不同。

http://www.cppreference.com/wiki/c/string/strcmp

答案 3 :(得分:0)

另一种方法也是

result= strcmp(my_string.c_str(),my_string2.c_str());