垃圾循环无缘无故

时间:2017-09-03 17:23:24

标签: string loops garbage

我编写了一个函数,它接收一个字符串作为char数组并将其转换为int:

int makeNumFromString(char Str[]) 
{
    int num = 0, len = 0;
    int p;
    len = strlen(Str);
    for (p = 0; p<len; p++)
    {
        num = num * 10 + (Str[p] - 48);
    }
    return num;
}

问题在于,无论我输入的字符串有多长,当&#34; p&#34;得到10&#34; num&#34;的值转向垃圾!         我尝试在较大的代码之外进行debbuging并检查函数,但没有成功。

可能是什么问题,我该如何解决?         致谢

1 个答案:

答案 0 :(得分:0)

也许你的int只能存储32位,所以这个数字不能高于2,147,483,647。

尝试使用num的类型以及更多存储空间,例如long