我有一个char数组,我想从中得到第一个数字。
例如,如果我的char数组是34 400 43 33.我想在int中使用34。
int FirstInt(char chars[])
{
return atoi(chars.substr(0, bursts.find(' ')));
}
我认为这是类似的东西,但它无效。任何想法?
答案 0 :(得分:3)
int FirstInt(char chars[])
{
int x;
sscanf(chars, "%d", &x);
return x;
}
答案 1 :(得分:2)
如果你想要的只是第一个数字,你不需要对字符串进行标记或使用sscanf:
return atoi(str);
来自手册页
atoi()函数转换指向的字符串的初始部分 通过nptr到int
这意味着它会在找到非数字字符(如空格)时停止。
修改强>: 请注意,使用atoi检测错误是不可能的,因为在某些实现中它在错误时返回0并且没有设置errno(AFAIK),所以使用 strtol 可能更好 请参阅此链接Converting Strings to Numbers