我有一个 char 数组,我想从中获取第一个数字。
例如,如果我的 char 数组是 34 400 43 33。我想要 int 中的 34。
int FirstInt(char chars[])
{
return atoi(chars.substr(0, bursts.find(' ')));
}
我在想这样的事情,但它是无效的。有任何想法吗?
我有一个 char 数组,我想从中获取第一个数字。
例如,如果我的 char 数组是 34 400 43 33。我想要 int 中的 34。
int FirstInt(char chars[])
{
return atoi(chars.substr(0, bursts.find(' ')));
}
我在想这样的事情,但它是无效的。有任何想法吗?
int FirstInt(char chars[])
{
int x;
sscanf(chars, "%d", &x);
return x;
}
如果您想要的只是第一个数字,则不需要标记字符串或使用 sscanf :
return atoi(str);
从手册页
atoi() 函数将 nptr 指向的字符串的初始部分转换为 int
这意味着它会在找到非数字字符(如空格)时停止。
编辑:请注意,使用 atoi 检测错误是不可能的,因为它在某些实现中返回 0 错误并且不设置 errno (AFAIK),因此使用strtol可能会更好, 请参阅此链接Converting Strings to Numbers