在C语言中扫描开关盒的两个字符

在C语言中扫描开关盒的两个字符,c,string,char,switch-statement,case,C,String,Char,Switch Statement,Case,所以我正在为文本编辑器编写一个程序,我设置了一个switch语句,这样当有人输入一个特定的字符时,它就会调用一个函数。例如,如果输入“?”,它将通过调用函数help()显示一个帮助菜单,如下所示 我的问题是,有些选项有两个字符,例如,要创建新文件,它们必须输入字符NF。我将如何在一个案例中实施这一点?我需要“”吗?还应该将选项扫描为字符串而不是字符吗 case "NF": newFile(); 当您有一个字符时,可以使用switch语句根据其值做出决定。因为它的实际值是一个单字节无符号整数。但

所以我正在为文本编辑器编写一个程序,我设置了一个switch语句,这样当有人输入一个特定的字符时,它就会调用一个函数。例如,如果输入“?”,它将通过调用函数help()显示一个帮助菜单,如下所示

我的问题是,有些选项有两个字符,例如,要创建新文件,它们必须输入字符NF。我将如何在一个案例中实施这一点?我需要“”吗?还应该将选项扫描为字符串而不是字符吗

case "NF":
newFile();

当您有一个字符时,可以使用
switch
语句根据其值做出决定。因为它的实际值是一个单字节无符号整数。但是这里有两个字符,不能使用
开关
。 您必须使用
if..else..else..

if (!strcmp(choice, "NF")) {
    // deal with NF
} else if (!strcmp(size, "SomethingElse")) {
    // deal with it
} // and so on

scanf()
格式字符串中使用
%s
,或在
sscanf()中使用
fgets()
。由于不能对字符串进行
switch()
,因此需要使用
strcmp()
if (!strcmp(choice, "NF")) {
    // deal with NF
} else if (!strcmp(size, "SomethingElse")) {
    // deal with it
} // and so on