This question already has answers here:
Best way to switch on a string in C
                                
                                    (15个答案)
                                
                        
                                4年前关闭。
            
                    
我是C语言的新编程人员,我想做一个使用switch将月份转换为月份数的程序。

例如:

输入:

"january"


输出:

"1"


这是我的工作:

void function(char number[]);

int main()
{
    char xm[20];

    printf("Month:");
    scanf("%s", &xm);

    function(xm);

    return 0;
}

void function (char number[20])
{
    switch (number[20])
    {
        case 'january': printf("1");
                        break;
        case 'february': printf("2");
                        break;
        case 'march': printf("3");
                        break;
        default:
            printf("error");
    }
}

最佳答案

你不能至少不是在C中。

改为使用

if((strcmp(number,"january")==0)
    printf("1");
else if((strcmp(number,"february")==0)
    printf("2");
//etc


请注意,您需要包括string.h才能使用strcmp

另一种方法是将所有月份的名称存储在二维char数组中。遍历此数组,并使用strcmp将输入与每个月的名称进行比较。如果找到匹配项,则打印月份数组+1的当前索引。

10-07 13:23