c语言switch语句,case后面怎么把字符串转化成值

如果我想输入星期一到星期六,每个选择都有不同的答案,case后面该怎么把字符串星期一转化成值,求大佬帮忙

参考如下:

#include <stdio.h>
#include <string.h>
int main()
{
    char buf[20]={0};
    char wk[7][20]= {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
    int id = 0;
    scanf("%s",buf);
    if (strcmp(wk[0],buf) == 0)
        id = 1;
    else if(strcmp(wk[1],buf) == 0)
        id = 2;
    else if(strcmp(wk[2],buf) == 0)
        id = 3;
    else if(strcmp(wk[3],buf) == 0)
        id = 4;
    else if(strcmp(wk[4],buf) == 0)
        id = 5;
    else if(strcmp(wk[5],buf) == 0)
        id = 6;
    else if(strcmp(wk[6],buf) == 0)
        id = 7;
    


    switch(id)
    {
    case 1:
        //你的操作
        break;
    case 2:
        //你的操作
        break;
    case 3:
        //你的操作
        break;
    case 4:
        //你的操作
        break;
    case 5:
        //你的操作
        break;
    case 6:
        //你的操作
        break;
    case 7:
        //你的操作
        break;
    default:
        //你的操作
        break;
    }
    return 0;
}

你要怎么转,看下你写的代码。

case 后面只能是整形及字符,不允许字符串。最好输入1~7的数字对应星期一到星期天。

你可以将周一到周日定义为枚举型,用枚举型可以switch...case
重点是你想怎么输入星期一到星期六,输入个数字,还是输入周一到周日的英文单词?只有这个明确了,才有适用的解决办法给出