You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字符串转int数组遇警告:makes pointer from integer without a cast 求助

解决数字字符串解析为int数组的问题

看起来你已经做好了前期准备——结构体定义、内存分配都搞定了,就差循环里的核心转换逻辑啦。其实这个问题的关键是利用ASCII码的特性:字符'0'到'9'的ASCII值是连续递增的,所以只要把每个字符减去'0'的ASCII值,就能得到对应的整数数字。

给你补全循环里的代码:

for (i = 0; i < 4; i++) {
    // 把字符转成对应的int数字
    newIntArray->numbers[i] = numString[i] - '0';
}

简单解释一下:

  • numString[i] 取到的是字符串里的单个字符,比如第一次循环是'8',它的ASCII值是56
  • '0' 的ASCII值是48,56-48=8,正好是我们要的整数
  • 依次循环,就能把"8162"转换成[8, 1, 6, 2]的int数组啦

如果之后你想让代码更通用(比如处理任意长度的数字字符串),可以用strlen(numString)来代替硬编码的4,这样不管字符串多长都能适配,不过当前你的场景用4是完全没问题的。

内容的提问来源于stack exchange,提问作者Eliott Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:59:55