如何从函数返回字符串

我想完成任务,该任务定义了特定月份中有多少天,我使用日期和时间库来获取当前月,然后我想检查本月的几天。

我遇到了这个错误:

没有合适的构造函数可以从“ 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];         }    }}

当您声明功能时 daysInMonth,您告诉编译器 months 参数是一个字符串,因此认为 months[i - 1] 将评估字符串中的单个字符。

为了解决此问题,请更改 daysInMonth 到 string daysInMonth(int month, string months[12]).

本文链接:https://xdcnz.com/10644.html