我希望能够将一个字符stdin
与我的规范字符进行比较。这样做的目的是过滤掉所有其他错误的输入,同时只保留指定的单个字符作为命令。就像在stdin
"nn" 或 "qddaw" 上一样 -> 再次出错,但 "n" 使一些有用的东西。
这是我想到的“代码方面”:
if (input does not contain 'c' or 's' or 'q' or 'n') {
printf("some kind of error");
}
好吧,我尝试创建一个具有指定字符的数组,array[] = {'a', 'b', 'c'}
这样我就可以使用函数 strncmp.. 将它与标准输入上的字符串进行比较
char c[256];
scanf("%s", c)
if (strncmp(array, c, 1) != 0) printf("error");
但它似乎不起作用。有什么建议么?
Edit1:这是实际的一段代码:
char c[256];
char* s = "nsrld";
char* quiter = "q";
do
{
printf(">");
scanf("%s", c);
if (only when there is no 'n' or 's' or other char from char* s on input)
{
errorHandle(ERROR_WRONG_CMD);
}
scanf("%*[^\n]"); scanf("%*c");
} while (strcmp(c,quiter) != 0);
如您所见,我很好地处理了“q”的事情,但是多个字符很麻烦。感谢您的任何建议。
编辑2:或者换句话说,我需要一个函数,它将输入与一组给定的字符进行比较,并且只有当有一个或另一个时(如'q'或's'函数才会通过(但如果有字符在一起则不会)像'qs')