我想完成任务,定义特定月份的天数,对于此任务,我使用日期和时间库来获取当月,然后我想检查当月的天数。
我收到此错误:
没有合适的构造函数可以转换为" char"至 "的std :: basic_string的, 的std ::分配器>"
string daysInMonth(int month, string months);
time_t tt = system_clock::to_time_t(system_clock::now());
struct tm * ptm = localtime(&tt);
char buff[100];
int days;
string months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int month = ptm->tm_mon+1;
switch (month)
{
case May: {
days = 31;
cout << daysInMonth(month, months);
}
}
string daysInMonth(int month, string months) {
for (int i = 0; i < sizeof(months) / sizeof(months[0]); i++)
{
if (month == i)
{
return months[i - 1];
}
}
}
答案 0 :(得分:5)
当您声明函数daysInMonth
时,您告诉编译器months
参数是单个字符串,因此它认为months[i - 1]
将计算为字符串中的单个字符。
要解决此问题,请将daysInMonth
的声明更改为
string daysInMonth(int month, string months[12])
。