如何在Switch Case中使用Char

时间:2019-01-27 12:11:33

标签: c++

  

如何进行这项工作

    <environmentVariables>
        <http_proxy>${build.proxy.uri}</http_proxy>
    </environmentVariables>        
  

错误是

     
      
  • 11 8 C:\ Users \ Edrian \ Desktop \ C ++代码\ World Information.cpp [警告]字符常量对于其类型而言太长了

  •   
  • C:\ Users \ Edrian \ Desktop \ C ++ Codes \ World Information.cpp在函数'int main()'中:

  •   
  • 11 8 C:\ Users \ Edrian \ Desktop \ C ++ Codes \ World Information.cpp [警告]案例标签值超过了
    的最大值   输入

  •   

3 个答案:

答案 0 :(得分:0)

知道区别:

“阿尔及利亚”这是一个字符串文字,因此它应该是“阿尔及利亚”,而您的C应该是一个字符串

'A'是一个字符

答案 1 :(得分:0)

如果要使用多个字符,则Char仅包含一个字符,必须使用字符串数据类型。在这种情况下,应使用字符串

答案 2 :(得分:0)

  

11 8 C:\ Users \ Edrian \ Desktop \ C ++ Codes \ World Information.cpp [警告]字符常量的类型太长

这表示'Algeria'对于类型char来说太长了,它应该是一个字母,例如'A'(如建议的here)。

    char string[256];
    scanf("%255s", string);
    switch (s[0]) {
        case 'A':
            if (0 == strcmp(string, "Algeria")) {

这应该有效。您可能需要#include <string.h>strcmp

请注意,"Algeria"现在被双引号了,而'A'被单引号了。

我省略了在两条语句中都相同的行,主要是printf语句。确保正确使用大括号。我为{添加了if。您需要添加}进行匹配(在break;之前)。

您也可以说

if (!strcmp(string, "Algeria")) {

但是我认为您可能更容易阅读另一种方式。从功能上说,这两个语句是相同的,因为C认为零是假的。

另请参阅:

相关问题