【发布时间】:2012-04-02 22:41:12
【问题描述】:
我需要检查一个 C 字符串是否是一个有效的整数。
我都试过了
int num=atoi(str);
和
int res=sscanf(str, "%d", &num);
但是在这两行中发送字符串"8 -9 10",只返回8,并没有说明这个字符串无效。
谁能提出替代方案?
【问题讨论】:
-
atoi不进行错误检查;如果str不包含int值的表示,它的行为是未定义的。 (典型实现返回0。)sscanf更好,但如果字符串中的值不能表示为int,则其行为未定义。此外,您的标题说您要检查有效的 int,但您的问题正文显示“有效整数”;他们不是一回事。int是几个 integer 类型之一。
标签: c string validation int