【问题标题】:How to use Char in Switch Case如何在 Switch Case 中使用 Char
【发布时间】:2019-01-27 12:11:32
【问题描述】:

如何做到这一点

 #include <stdio.h>
    #include <conio.h>
    main()
    {
        char C;
        printf("R=This Program gives you some of the information of the country you entered.");
        printf("Enter a Country:");
        scanf("%c", &C);
        switch(C)
        {
            case 'Algeria':
                printf("Capital: Algiers");
                printf("Currency and Country Code: Algerian Dinar (DZD)");
                break;
            }   



        getch ();
        return 0;
    }

错误是

  • 11 8 C:\Users\Edrian\Desktop\C++ Codes\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 [警告] 案例标签值超过
    的最大值 输入

【问题讨论】:

标签: c++


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    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")) {
    

    这应该可行。对于strcmp,您可能需要#include &lt;string.h&gt;。

    注意"Algeria" 现在是双引号,而'A' 是单引号。

    我省略了两者中相同的行,主要是printf 语句。确保你得到正确的花括号。我为if 添加了{。您需要添加一个} 来匹配(在break; 之前)。

    你也可以说

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

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

    另见:

    【讨论】:

      【解决方案3】:

      知道区别:

      'Algeria' 这是一个字符串文字,所以它应该是 "Algeria" 而你的 C 应该是一个字符串

      'A'是一个字符

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-25
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        • 2021-01-17
        • 1970-01-01
        • 2014-10-31
        相关资源
        最近更新 更多