嗨,任何人都可以告诉这段代码有什么问题吗?
string s=getString(); //return string
if(!strcmp(s,"STRING")){
//Do something
}
Run Code Online (Sandbox Code Playgroud)
编译时我得到的错误就像
error: cannot convert ‘std::string’ to ‘const char*’ for argument ‘1’ to ‘int strcmp(const char*, const char*)’|
Run Code Online (Sandbox Code Playgroud)
awe*_*oon 21
strcmp接受const char*作为参数.你可以使用c_str方法:
if(!strcmp(s.c_str(),"STRING"))
Run Code Online (Sandbox Code Playgroud)
或者只是使用过载operator==为std::string:
if(s == "STRING")
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 11
您需要使用s.c_str()以获取a的C字符串版本std::string,如下所示:
if (!strcmp (s.c_str(), "STRING")) ...
Run Code Online (Sandbox Code Playgroud)
但我不确定为什么你不会只使用:
if (s == "STRING") ...
Run Code Online (Sandbox Code Playgroud)
这更具可读性.
您可以像在其他答案中一样使用该c_str()方法std::string.
你也可以这样做:
if (s == "STRING") { ... }
Run Code Online (Sandbox Code Playgroud)
哪个更清楚,也不假装你在写C.
| 归档时间: |
|
| 查看次数: |
34162 次 |
| 最近记录: |