对输出的结果有疑问

cclldd8984 2010-05-30 03:55:00

#include <stdio.h>
main()
{
int i,n;
char aa[]="This is a program";
char bb[2]="a";
for(i=0; ;i++)
{
if(bb[0]==aa[i])
{
n=i;
break;
}
}
printf("%d",n);
}
为什么n的值是8不是9呢?
...全文
113 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tczf168 2010-05-30
  • 打赏
  • 举报
回复
数组下标是从0开始的,那个a是第9个,也就是数组的下标是8
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复

#include <stdio.h>
main()
{
int i,j;
char aa[20],bb[20];
printf("Enter the string:\n");
scanf("%s",aa);
for(i=j=0;aa[i]!='@';i++)
{
if(aa[i]>='A'&&'W'>=aa[i]) aa[i]=aa[i]+3;
else if(aa[i]>='X'&&'Z'>=aa[i]) aa[i]=aa[i]-23;
bb[j]=aa[i]+32;
j++;
else bb[j]=aa[i]; 为什么我的else语句是没有if与之对应的?
j++;
}
printf("%s",bb);
}
组建时出现上述错误,为什么?
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
I get it.谢谢你们!
wangjk_wj 2010-05-30
  • 打赏
  • 举报
回复
大写字母对应的值+32 就是小写字母了
周靖峰 2010-05-30
  • 打赏
  • 举报
回复
字母加32就行了
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
请问一下:怎样将大写字母译成小写字母?
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
成功了!谢谢!
jokers_i 2010-05-30
  • 打赏
  • 举报
回复
printf("%d",'e'-'a');

可以输出字母e和a的ASCII码之差。
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
我试试!
东莞某某某 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cclldd8984 的回复:]

不好意思打错了!是两个字符的ASCII码之差。
[/Quote]
printf("%d\n",ch1-ch2); 这个?
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
不好意思打错了!是两个字符的ASCII码之差。
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
请问一下:两个字符串做减法,住输出ASCII码,该怎样编写?
sduxiaoxiang 2010-05-30
  • 打赏
  • 举报
回复
bb[0]==aa[8]....然后n=i=8就break了
ArtiFly2000 2010-05-30
  • 打赏
  • 举报
回复
C语言用多了就习惯了,C语言数组下标是从0~(n-1),n为数组大小
cclldd8984 2010-05-30
  • 打赏
  • 举报
回复
是啊!谢谢你!
AlanBruce 2010-05-30
  • 打赏
  • 举报
回复

for(i=1; ;i++)
{
if(bb[0]==aa[i])
{


i++是在执行循环之后再加的。。
AlanBruce 2010-05-30
  • 打赏
  • 举报
回复
因为i是从0开始的

69,373

社区成员

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

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