C++ 如何在此代码中正确使用strcmp()?

C++ 如何在此代码中正确使用strcmp()?,c++,string,strcmp,C++,String,Strcmp,我想比较一下cs[I][a].days[x]和“Mon”,以确定我是否可以将此字符串放入周一的目录中。。。 但它似乎不起作用?(无匹配功能) #包括 #包括 #包括 结构课程{ 字符串名; string*days;//天数的动态数组int start\u hr,start\u min; int start_hr,start_min; int end_hr,end_min; }; 第2天无效打印(课程**cs,整数,整数,整数天){ CUT< P>虽然调用 -> CyScript()/代码>使用

我想比较一下
cs[I][a].days[x]
“Mon”
,以确定我是否可以将此字符串放入周一的目录中。。。 但它似乎不起作用?(无匹配功能)

#包括
#包括
#包括
结构课程{
字符串名;
string*days;//天数的动态数组int start\u hr,start\u min;
int start_hr,start_min;
int end_hr,end_min;
};
第2天无效打印(课程**cs,整数,整数,整数天){

CUT< P>虽然调用<代码> -> CyScript()/代码>使用<代码> STRCMP 进行C风格比较,但最好使用<代码> > >()/>代码>或简单地<代码> = = /COD> >因为它们是更为自然的C++习语

C型(不推荐):

成员职能:

cs[i][a].days[x].compare("Mon")
关系算子

cs[i][a].days[x] == "Mon"

请注意,这不会将
“Mon”
转换为
字符串
,因为
->compare()
=
都有一个
const char*

的覆盖,虽然很容易调用
->c_str()
来使用
strcmp>进行c风格的比较,但最好只使用
->->compare()或简称<代码>=< /COD> >因为它们是更多的本地C++习语

C型(不推荐):

成员职能:

cs[i][a].days[x].compare("Mon")
关系算子

cs[i][a].days[x] == "Mon"

请注意,这不会将
“Mon”
转换为
字符串,因为
->compare()
=
都有一个对
常量字符*
的覆盖

您需要使用c_str()将字符串转换为c字符串(以null结尾)

您需要使用c_str()将字符串转换为c字符串(以null结尾)

“Mon”
未转换为
std::string
,因为
basic\u string
有一个@RedX谢谢,不知道我为什么错过了覆盖,更新为notethis@AURRR您还需要什么才能接受这个答案?
“Mon”
未转换为
std::string
,因为
basic\u string
有一个@RedX谢谢,不知道我为什么错过了覆盖,更新为notethis@AURRR除了使用<代码>运算符==/COD>比较字符串之外,还有其他需要你接受的答案吗?请考虑使用<代码> STD::vector < /代码><代码>天> /代码>成员。除了使用<代码>运算符==/COD>比较字符串,考虑使用<代码> STD::vector < /代码>为您的代码>天< /代码>成员。