Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较c+中的两个std::字符串+; 这种比较是否可能在C++ ++?/p>中进行? std::string name = "John"; if (name == "Tom") flag = true; else flag = false;_C++_String - Fatal编程技术网

比较c+中的两个std::字符串+; 这种比较是否可能在C++ ++?/p>中进行? std::string name = "John"; if (name == "Tom") flag = true; else flag = false;

比较c+中的两个std::字符串+; 这种比较是否可能在C++ ++?/p>中进行? std::string name = "John"; if (name == "Tom") flag = true; else flag = false;,c++,string,C++,String,是的,因为std::string为const char*重载operator== 或者,你也可以直接写 flag = name == "Tom"; 或者使用std::string::compare(如果字符串匹配,则返回0)是的,因为std::string重载运算符== 或者,你也可以直接写 flag = name == "Tom"; 或使用 STD::String::比较(返回 0代码>代码> < P> >比较C++中的SRITES,建议您从以下使用STRCMP: #include <

是的,因为
std::string
const char*
重载
operator==

或者,你也可以直接写

flag = name == "Tom";

或者使用
std::string::compare
(如果字符串匹配,则返回
0

是的,因为
std::string
重载
运算符==

或者,你也可以直接写

flag = name == "Tom";

<>或使用<代码> STD::String::比较(返回<代码> 0代码>代码>

< P> >比较C++中的SRITES,建议您从以下使用STRCMP:

#include <string.h>
....
STRCMP(name,"Tom"); // This will return 0 if they are equal

<>记住使用C++包含String,H>< /P> < P>比较C++中的SRITES,建议你使用StrcMP从:

#include <string.h>
....
STRCMP(name,"Tom"); // This will return 0 if they are equal

记住使用#include

为什么不
flag=name==“Tom”?是的,@KerrekSB:我个人会使用
flage=(name=“Tom”)为什么不
flag=name==“Tom”?是的,@KerrekSB:我个人会使用
flage=(name=“Tom”) >为什么旧的函数或宏或WAVER >代码> STRMP 比 STD::Basic SythStudio比较操作符?标准C++中没有STRCMP这样的东西。@ Sasuas:在我看来,大多数人发现OP= =更人性化,也假定如果他是指代码“STRCMP < /代码>,调用看起来会有所不同(此外,它效率更低,甚至可能导致错误的结果,具体取决于
name
)的内容@Sascuash:一点也不,我个人可以清楚地区分=和=。如果不能,您仍然可以编写
if(name==“Tom”)
。即使是这样,这也不能解决两种情况都会导致不同的结果。@ SasuCuffs,首先,StrucMP是一个宏,定义(如果我记得正确的话)对于Windows C++库(即不是标准C++)。第二,请不要在C++中重新评论C字符串处理函数——它们导致了不安全的/不安全的C++编码,而忽略了现代C++代码的优点(RAII的想法)。C++中的字符串比较应该使用STD::string(这就是STD::String所在的原因)为什么旧的函数或宏或WAVER <代码> STRMP 比 STD::Basic字符串比较操作符?标准C++中没有STRCMP这样的东西。@ Sasuas:在我看来,大多数人发现OP= =更人性化,而且,如果他是指代码“STRCMP > C,调用看起来会有所不同(此外,它效率更低,甚至可能导致错误的结果,具体取决于
name
)的内容@Sascuash:一点也不,我个人可以清楚地区分=和=。如果不能,您仍然可以编写
if(name==“Tom”)
。即使是这样,这也不能解决两种情况都会导致不同的结果。@ SasuCuffs,首先,StrucMP是一个宏,定义(如果我记得正确的话)对于Windows C++库(即不是标准C++)。第二,请不要在C++中重新评论C字符串处理函数——它们导致了不安全的/不安全的C++编码,而忽略了现代C++代码的优点(RAII的想法)。C++中的字符串比较应该使用STD::string(这就是STD::String存在的原因)。