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 < /代码>为您的代码>天< /代码>成员。