for argument `1' to `int strcmp(const char*, const char*)

lrtaylor@micron.com lrtaylor@micron.com
Wed Sep 1 16:44:00 GMT 2004


You can pass a string object to strcmp like that.  You have to pass it a
character array instead.:

strcmp(s.c_str(), "quit");

For that matter, though, you can just do this:

while ( s == "quit" )

unless you're trying to loop until s is quit, in which case you're logic
is wrong with strcmp, too.

while ( s != "quit" )

Thanks,
Lyle


-----Original Message-----
From: gcc-help-owner@gcc.gnu.org [mailto:gcc-help-owner@gcc.gnu.org] On
Behalf Of learning c++
Sent: Wednesday, September 01, 2004 8:17 AM
To: gcc-help@gcc.gnu.org
Subject: for argument `1' to `int strcmp(const char*, const char*)

Hi,
I hope to use the build in function ""strcmp()" in C++, but I can not
deal 
with it. My code is like this:

#include <iostream>
#include <string>
#include <cstring>
#include <vector>
using namespace std;

int main(){
vector<string> v1;
vector<string>::iterator iter;
string s;
do{
cout <<"please input something:" <<endl;
cin>>s;
v1.push_back(s);
}while (!(strcmp(s,"quit")));

for(iter=v1.begin(); iter!=v1.end();iter++)
cout <<*iter<<endl;

return 0;
}

error: cannot convert `__gnu_cxx::__normal_iterator<char*,
   std::basic_string<char, std::char_traits<char>, std::allocator<char>
> >' 
to
   `const char*' for argument `1' to `int strcmp(const char*, const
char*)'

I know now "s" is an object of string. How can I compare it with a
string, 
like ""quit"? Are there some methods in String class?

Thanks,

_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE*  
http://join.msn.com/?page=features/junkmail



More information about the Gcc-help mailing list