【发布时间】:2015-12-26 13:24:00
【问题描述】:
我已经在互联网上搜索了一段时间,但是对于我眼中的一个实际上很简单的问题,我没有找到一个简单的解决方案。我想它已经被问过了:
我正在通过sscanf 从文件中读取20.1 或XYZ 之类的值并将其保存在char *width_as_string 中。
所有函数都应该在-std=c99中有效。
现在我想检查width_as_string 中的值是否为整数。如果为真,则应保存在int width 中。如果为 false,width 应保留值 0。
我的方法:
int width = 0;
if (isdigit(width_as_string)) {
width = atoi(width_as_string);
}
或者,将width_as_string 转换为int width 并将其转换回字符串。然后比较是否相同。但我不确定如何实现这一目标。我已经尝试过itoa。
isdigit 和 itoa 之类的函数在 std=c99 中无效,因此我无法使用它们。
谢谢。
【问题讨论】:
-
你认为这里的“整数”是什么?
-
@MikeCAT 20.1 不是整数,是吗?宽度值只能包含 0-9 的数字 :)
-
那么
-123在这里不被视为整数吗? -
isdigit在 C99 中肯定是有效的。itoa,没那么多。使用strtol。
标签: c