使用C检查用户输入是否为有效字符串

2 c validation

我正在从用户那里获取字符串输入.但是我如何检查用户是否输入了字符串或数字?

Ste*_*sop 7

调用strtol,检查存储到endptr的值是否不等于输入(成功转换),并且是指向NUL字节的指针(使用了整个字符串).

http://www.opengroup.org/onlinepubs/000095399/functions/strtol.html

解释说,如果你还想检测溢出,诀窍是将errno设置为0,然后调用strtol,然后检查errno是否仍为0.

如果你想要迂腐,你还必须使用isspace()检查输入字符串的第一个字符是非空格.原因是strtol和朋友跳过了初始空格,但也许你不认为"1"是有效数字.

如果您想允许更大的数字或非整数,则替代方案分别包括strtoll和strtod.