C ++在if语句中分配字符串变量

时间:2015-01-15 17:34:44

标签: c++

我是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”?

3 个答案:

答案 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的新变量,与您可能拥有的任何其他变量无关。