我编写了一个函数,它接收一个字符串作为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并检查函数,但没有成功。
可能是什么问题,我该如何解决? 致谢
答案 0 :(得分:0)
也许你的int
只能存储32位,所以这个数字不能高于2,147,483,647。
尝试使用num
的类型以及更多存储空间,例如long
。