2010-04-23 4 views
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 Строка

+5

Прекратить использование плз пожалуйста. – Cristina

+0

Обратите внимание, что _tmain не является стандартным C++. –

+2

@ Кристина: может быть, он орел и печатает с когтями. http://hyperboleandahalf.blogspot.com/2010/04/alot-is-better-than-you-at-everything.html –

ответ

5

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

0

Другой способ сделать это также

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

'string' имеет методы для этого:' result = my_string.compare (my_string2) ' – newacct

4

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

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

#include <string>
#include <iostream>

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

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

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

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

+0

To быть более педантичным, функция 'strcmp' применяется к массиву символов, заканчивающихся нулем (aka char *). Если вам действительно нужно использовать 'strcmp', используйте его с помощью метода' c_str() '' std :: string'. –

+0

Правда, должно было это разъяснить. Благодаря! – Sagar

+0

Спасибо ВСЕ OV You – user324463

Смежные вопросы