gpt4 book ai didi

c - 使用 #define 将字符串命令与 switch() 一起使用

转载 作者:行者123 更新时间:2023-11-30 14:58:03 24 4
gpt4 key购买 nike

我尝试通过使用关键字而不是整数来使用 switch() 语句。我已将我的问题写成一个更简单、更直接的示例,以更好地指出我的目标。我的相关代码:

#include <stdio.h>
#include <stdlib.h>

#define put 0
#define get 1
#define run 2

int main () {
int ch;

printf("%s", "Please enter a command: ");
scanf("%d", ch);

switch (ch) {
case 0:
puts("You chose \"put\" as a command.");
break;
case 1:
puts("You chose \"get\" as a command.");
break;
case 2:
puts("You chose \"run\" as a command.");
break;
}
}

理想情况下,当我扫描用户输入时,我希望用户能够利用上述 #define 语句中提供的命令。因此,系统会提示用户输入一个值,输入put,程序输出case 0。这可以通过 switch() 实现吗?

最佳答案

您需要一个函数来将用户输入转换为命令。例如

int stringToCommand(char* cmd)
{
if (strcmp(cmd, "put") == 0)
return put;
...
}

然后你可以在开关中使用#defines

int cmd = stringToCommand(userInput);
switch (cmd) {
case put:
puts("You chose \"put\" as a command.");
break;
...

通常对于这种类型的场景,我会查看枚举而不是依赖#defines。

关于c - 使用 #define 将字符串命令与 switch() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com