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