我是C ++的新手。我试图将一个字符串分配给一个月,具体取决于在cin中选择的数字。 这是我在函数中的代码。
cout << "Enter your birth month: ";
cin >> mm; //Birth Month//
int mm;
std::string month;
if(mm == 5 || mm == 05){
std::string month = "May";
}
// If month is equal to 5 or 05, set string variable month to May
cout << "You were born in the month of " << month << endl;
如果mm等于5,如何将变量“month”分配给“may”?
答案 0 :(得分:7)
您的字符串变量实际上被if
块范围
if(mm == 5 || mm == 05) {
std::string month = "May"; // That value is gone after the `}`
}
你可能想写
if(mm == 5) {
month = "May"; // Note the type declaration is omitted here
}
另请注意,为什么我在上面的示例中省略了mm == 05
,是因为
if(mm == 5 || mm == 05)
错了。第二个比较表达式实际上与八进制整数文字进行比较,你当然不想这样做。
if(mm == 5)
就足够了。
答案 1 :(得分:1)
你已经在上面声明了你的字符串,所以月份上的一个简单的赋值操作就可以了:
if(mm == 5 || mm == 05){
month = "May";
}
此外,即使用户输入“05”作为整数,也会将其存储为“5”,因此不需要条件
|| mm == 05
旁注,您必须在cin语句之前声明“int mm”,如下所示:
int mm;
cout << "Enter your birth month: ";
cin >> mm; //Birth Month//
答案 2 :(得分:0)
month = "May";
这是一项任务。
std::string month = "May";
这不是作业。这是我们的宣言。您正在声明一个名为month
的新变量,与您可能拥有的任何其他变量无关。