gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 00:08:42 25 4
gpt4 key购买 nike

我想比较 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;
}
}
}
}

最佳答案

虽然很想调用 ->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 *

关于c++ - 如何在此代码中正确使用 strcmp() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34124577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com