如何获取字符串中的第一个单词并转换为int

时间:2012-10-23 16:15:59

标签: c

我有一个char数组,我想从中得到第一个数字。

例如,如果我的char数组是34 400 43 33.我想在int中使用34。

int FirstInt(char chars[])
{
    return atoi(chars.substr(0, bursts.find(' ')));
}

我认为这是类似的东西,但它无效。任何想法?

2 个答案:

答案 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