将数字串转换为数字

时间:2015-06-07 12:00:57

标签: c string

当我尝试转换string_1 =" 20001"使用下面的代码,我得到数组:string_1 [0] = 2和string_1 [1] = 0。这背后的原因是什么?当它" 20125"没关系,但当它不止一个零时,它就不行了。

    for(j=0;j<strlen(string_1);j++)
    {
        string_1[j]=(string_1[j]-8)%10;
    }

我期望获得的是:string_1[0]=2 , string_1[1]=0 , string_1[3]=0 ,string_1[3]=0 and string_1[4]=1

1 个答案:

答案 0 :(得分:1)

您正在修改循环中的字符串,这意味着每次迭代调用strlen(string_1)时条件不再有效(请记住strlen查找字符串终止'\0',这是等于零以找到结束。)

要么获得一次之前的长度并将其放入您在条件中使用的变量中,要么使用另一个数组作为目标。