问题描述
我必须使用什么来将月份存储为变量? 当我运行代码时,它说“警告字符常量对于其类型来说太长了”。
我创建了一个程序来检查给定月份中有多少天,因此我从用户那里获取一个值并将其放入 m
。我也尝试将 m
的值作为(字符),但它不起作用。我检查月份是二月还是另一个月。如果是二月,则要求输入年份,y
,如果不是二月,则在所有条件下匹配m
的值并输出月份,{{1} }.
m
解决方法
试试这个:
#include<iostream>
#include <string>
using namespace std;
int main() {
std::string m;
int y;
cout << "Plase Enter The month:- ";
cin >> m;
if (m == "january" || m == "march" || m == "april" || m == "may" || m == "june" || m == "july" || m == "august" || m == "september" || m == "december" || m == "october" || m == "november" || m == "jan" || m == "mar" || m == "apr" || m == "may" || m == "jun" || m == "jul" || m == "aug" || m == "sep" || m == "dec" || m == "oct" || m == "nov" || m == "JANUARY" || m == "MARCH" || m == "APRIL" || m == "MAY" || m == "JUNE" || m == "JULY" || m == "AUGUST" || m == "SEPTEMBER" || m == "OCTOBER" || m == "NOVEMBER" || m == "DECEMBER")
{
if (m == "jan" || m == "january" || m == "JANUARY")
{
cout << "There Are 31";
}
else if (m == "march" || m == "mar" || m == "MARCH")
{
cout << "There Are 31";
}
else if (m == "apr" || m == "april" || m == "APRIL")
{
cout << "There Are 30";
}
else if (m == "may" || m == "MAY")
{
cout << "There Are 31";
}
else if (m == "june" || m == "jun" || m == "JUNE")
{
cout << "There Are 30";
}
else if (m == "jul" || m == "july" || m == "JULY")
{
cout << "There Are 31";
}
else if (m == "aug" || m == "august" || m == "AUGUST")
{
cout << "There Are 31";
}
else if (m == "sep" || m == "september" || m == "SEPTEMBER")
{
cout << "There Are 30";
}
else if (m == "oct" || m == "october" || m == "OCTOBER")
{
cout << "There Are 31";
}
else if (m == "nov" || m == "november" || m == "NOVEMBER")
{
cout << "There Are 30";
}
else if (m == "dec" || m == "december" || m == "december")
{
cout << "There Are 31";
}
}
else if (m == "feburary" || m == "feb" || m == "FEBURARY") {
cout << "You Entered ";
cout << m;
cout << " which have more days in Leap year\"s ";
cout << "So Please Enter The year:- ";
cin >> y;
if (y >= 1752)
{
if ((y - 1752) % 4 == 0)
{
cout << "There are 29 days";
}
else if ((y - 1752) % 4 != 0) {
cout << "There is 28 days";
}
}
else {
cout << "The First leap is started from 1752 so Please enter Number Greater than it";
}
}
else cout << "------------------Please Enter A valid Month or Check Your Spelling--------------------";
return 0;
}
在c++中,单引号'
只能用于字符,例如'e'
,不能用于字符串,例如'hello'
。对于字符串,您使用双引号,例如 "
。
如果您希望将输入与其他内容进行比较,您还应该使用 std::string
。
- 您将
m
声明为字符并将其用作字符串。 - 您使用
''
来表示字符串,但它是您应该使用的""
。
@@ -1,70 +1,35 @@
#include<iostream>
+#include<string>
using namespace std;
int main()
{
- char m;
+ string m;
int y;
cout<<"Plase Enter The month:- ";
cin>>m;
- if (m=='january'||m=='march' ...
+ if (m=="january"||m=="march" ...
{
- if (m=='jan'||m=='january'||m=='JANUARY')
+ if (m=="jan"||m=="january"||m=="JANUARY")
{
cout<<"There Are 31";
}
,
实际上 m
是一个字符。一个字符的大小为 1 个字节。这意味着你可以分配 char m = 'q';
但你不能说 char m = 'qq';
这里你必须使用一个字符数组,即 char m[] = "qq";