2

2 つのユーザー入力文字列を比較したいのですが、比較できません...

#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 文字列

4

4 に答える 4

5

を使用しているためstd::stringstrcmp不要です。 、 、 などを使用<でき==ます!=

于 2010-04-23T18:10:18.703 に答える
4

あなたのインクルード:

標準ヘッダーを含めるので、<>に含める必要があります

#include <string>
#include <iostream>

#include with ""は通常、標準のヘッダーファイルではなく、独自のヘッダーファイルに使用されます。

C ++を使用しているため、strcmpを使用する必要はありません。C ++では、==&!=を使用して2つの文字列を比較できます。

if (my_string == my_string2) result = 0;
else result = 1;

また、文字列をconst char *に変換する場合は、次を使用できます。mystring.c_str()

于 2010-04-23T18:42:21.343 に答える
0

strcmp を使用する場合は、使用したものとは異なるパラメーターを取ることに注意してください。

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

于 2010-04-23T18:13:17.873 に答える
0

これを行う別の方法も

result= strcmp(my_string.c_str(),my_string2.c_str());
于 2010-04-23T18:16:49.167 に答える