为何 atoi()函数返回值总是 0啊?谢谢

cokeclassic 2006-08-08 09:24:12
#include <stdlib.h>

int main(void)
{
int i;
char a[10];

a[0]=9;
a[1]=0;
i=atoi(a);
//不管a[0]为何值,i总是得到 0



}
什么原因?谢谢
...全文
1462 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shavey 2006-08-08
  • 打赏
  • 举报
回复
cokeclassic,你用a[0]=192是得不到192的。
用这个吧:char a[10]="192"
cokeclassic 2006-08-08
  • 打赏
  • 举报
回复
yjf7888()()()()()()()() ( )


a[0]=192;
a[1]='\0';
a[2]='\0';

i=atoi(a);
个还是0啊!怎么得到 192 呢?谢谢
shavey 2006-08-08
  • 打赏
  • 举报
回复
#include <stdlib.h>

int main(void)
{
int i;
char a[10]="112233";

i=atoi(a);
printf("%d\n",i);

}
这样的话,可以输出112233。但是却不能把数组里的每一个元素都输出:(
shavey 2006-08-08
  • 打赏
  • 举报
回复
yjf7888的办法,如果遇到数组a[10]里的元素是111,222,...就不行了啊
yjf7888 2006-08-08
  • 打赏
  • 举报
回复
atoi的参数应该是null结尾的字符串,
理解一下ascii和char的关系,以及字符串与整数数组的区别。
yjf7888 2006-08-08
  • 打赏
  • 举报
回复
a[0]='9';
a[1]='0';
a[2]='\0';
yjf7888 2006-08-08
  • 打赏
  • 举报
回复
还有提醒一下,楼主在这个版的帖子一个都没有结过,有空还是结了吧。
yjf7888 2006-08-08
  • 打赏
  • 举报
回复
a[0]=9; ---------9对应ascii吗的那个字符啊?注意a[0]='9'和a[0]=9的区别
a[1]='\0';
a[2]='\0';
这时,a还是一个可以打印的字符串吗?试试puts(a)能得到什么
cokeclassic 2006-08-08
  • 打赏
  • 举报
回复
yjf7888()()()()()()()() ( )


a[0]=9;
a[1]='\0';
a[2]='\0';

i=atoi(a);
个还是0啊!怎么得到 9 呢?谢
yjf7888 2006-08-08
  • 打赏
  • 举报
回复
我晕,看来楼主没仔细看我在2楼的留言啊,先把这些概念搞清楚再说。再说了,你char型的a[0]能放得下+192吗?排除某些缺省char型为unsigned的平台。

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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