私はこのタスクのために特定の月に何日があるかを定義するタスクを実行したいと思います。現在の月を取得するために日付と時刻ライブラリを使用しています。当月関数から文字列を返す方法
私はこのエラーを取得しています:
no suitable constructor exists to convert from "char" to "std::basic_string, std::allocator>"
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];
}
}
}
@CoolGuy whoops、OPは実際にあなたがコメントしたので、彼の質問を変え、それが私を惑わしました。私の前のコメントは無視してください。 – Quentin
あなたの質問を新しいものに変えないでください。それは与えられた答えを無効にします。今、別の問題がある場合は、別の質問をしてください。 –
https://stackoverflow.com/questions/1975128/sizeof-an-array-in-the-c-programming-languageを読んで、std :: vectorまたはstd :: arrayを使用することを検討してください。あなたはあなたが望むことをすることができます。 https://ideone.com/3Ym0hT –