是否可以只接受来自用户In C的特定字符输入?
例如:
我对用户的输入只能包含a
,h
或$
等特定字符。用户不能输入a
,h
或$
以外的字符。
那是"ahhaa$"
应该检查为true,"ahbd"
应该检查为false。
如何在C中实现此功能?
答案 0 :(得分:1)
假设您手头有输入字符串进行检查,您可以使用strspn
。 strspn
将返回第一个参数的前缀长度,该参数完全由第二个参数中的字符组成。然后,您的检查可以查看返回的长度是否与输入的长度相匹配。
#include <stdbool.h>
bool check_input(const char *input) {
size_t n = strspn(input, "ah$");
return input[n] == '\0';
}
答案 1 :(得分:0)
不,不可能在stdin
添加过滤器。您需要阅读输入,并自行过滤。