将数字字符串转换为数字

标签 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 和 string_1[4]=1.

最佳答案

您正在循环中修改字符串,这意味着当您每次迭代调用 strlen(string_1) 时,条件不再起作用(请记住,strlen 会查找字符串终止符 '\0' 等于 0 来查找结束)。

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

关于将数字字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693282/

相关文章:

c - 如何将 argb 像素阵列转换为 SDL 表面?

c - stat 系统调用报告 "No such file or directory"

java - 静态错误 : This class does not have a static void main method accepting String[]

java - 用句点(.)分割的字符串表现出不同的行为

c - 设置 if else 条件来过滤数据

将字符串转换为大写以与 C 中的用户输入进行比较

c - 初始化使指针来自整数而不进行强制转换

python - 在 Python 2.7 中使用 cql 1.4.0 查询空字符串

php - mysql_real_escape_string 在数据库连接内返回空/空白

javascript - 获取对象的 "class"属性,拆分为字符串数组