关于string转换的问题

avonuts 2006-10-02 06:34:57
想把字符串中单位的数字和双位的数字加起来,gcc下面有Segmentation Fault (core dumped)的提示,这个是啥问题阿?请教各位
高手帮忙看一下.


int main()
{
char barcode[]="123456789";
int number=atoi(barcode)
int oddsum=barcode[0]+barcode[2]+barcode[4]+barcode[6]+barcode[8];
int evensum=barcode[1]+barcode[3]+barcode[5]+barcode[7];
printf("%s\n",oddsum);
printf("%s\n",evensum);
printf("%s\n",barcode);
}
...全文
238 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
avonuts 2006-10-02
  • 打赏
  • 举报
回复
To Jokar(贪睡鼠★御姐控☆小宠王)
多谢,最后结果的确如此,能不能给我一些提示阿,比如格式的转换。

TO lj860603(键键
thanx very much, it is working on gcc complier.
Jokar 2006-10-02
  • 打赏
  • 举报
回复
Segmentation Fault的原因 是 int形态的变量却以 %s(字符串)的格式输出了;比如printf("%s\n",oddsum); oddsum是int型的,却以%s的格式想让printf作输出~


改成 printf("%d\r\n", oddsum);就可以了,不过这也得不到正确的结果, 因为oddsum所得的是数字字符的ascii码的和,这个和真正的数字的值相差了 48~呵呵

lz要做出相应的调整才行~
lj860603 2006-10-02
  • 打赏
  • 举报
回复
printf("%s\n",oddsum);
printf("%s\n",evensum);
printf("%s\n",barcode);
===============》
printf("%d\n",oddsum);
printf("%d\n",evensum);
printf("%s\n",barcode);
lj860603 2006-10-02
  • 打赏
  • 举报
回复
int oddsum=barcode[0]+barcode[2]+barcode[4]+barcode[6]+barcode[8];
==============》
int oddsum=(barcode[0] - '0')+(barcode[2]-'0')+(barcode[4]-'0')+(barcode[6]-'0')+(barcode[8]-'0');

int evensum=barcode[1]+barcode[3]+barcode[5]+barcode[7];
也一样改成上面的形式。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧