我想比较cs[i][a].days[x]
和"Mon"
,以便了解我是否可以将此字符串放入星期一的目录中...
但它似乎不起作用? (没有匹配的功能)
#include <iostream>
#include <string>
#include <cstring>
struct course{
string name;
string *days; //dynamic array of days int start_hr, start_min;
int start_hr, start_min;
int end_hr, end_min;
};
void print_day2(course **cs,int num, int number, int day){
cout << "Monday: " << endl;
for(int i = 0; i <number; i++){
for(int a = 0; a < num;a++){
for(int x = 0; x < day; x++){
if(strcmp(cs[i][a].days[x], "Mon")==0){
cout << cs[i][a].days[x] <<endl;
}
}
}
}
答案 0 :(得分:3)
尽管使用->c_str()
调用strcmp
进行C风格比较很有吸引力,但最好只使用->compare()
或简单==
,因为它们更具原生性C ++习语
C风格(不推荐):
strcmp (cs[i][a].days[x].c_str(), "Mon")
会员功能:
cs[i][a].days[x].compare("Mon")
关系运算符
cs[i][a].days[x] == "Mon"
请注意,这不会将"Mon"
转换为string
,因为->compare()
和==
都会覆盖const char *
。
答案 1 :(得分:0)
您需要使用c_str()将字符串转换为C字符串(空终止)