Сравнение строк - PullRequest
       30

Сравнение строк

2 голосов
/ 23 апреля 2010

Я хочу сравнить две строки ввода пользователя, но не могу этого сделать ...

#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 ]

5 голосов
/ 23 апреля 2010

Поскольку вы используете std::string, strcmp не требуется - вы можете просто использовать <, ==, != и т. Д.

4 голосов
/ 23 апреля 2010

Ваше включает в себя:

Поскольку вы включаете стандартные заголовки, они должны быть в <>

#include <string>
#include <iostream>

# include с "" обычно используется для ваших собственных заголовочных файлов, а не для стандартных заголовочных файлов.

Вы используете C ++, и поэтому вам не нужно использовать strcmp. В C ++ вы можете просто использовать == &! = Для сравнения двух строк.

if (my_string == my_string2) result = 0;<br> else result = 1;

Кроме того, если вы хотите преобразовать строку в const char *, вы можете использовать mystring.c_str()

0 голосов
/ 23 апреля 2010

Еще один способ сделать это также

result= strcmp(my_string.c_str(),my_string2.c_str());
0 голосов
/ 23 апреля 2010

Если вы хотите использовать strcmp, обратите внимание, что он принимает параметры, отличные от тех, которые вы использовали.

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

...