看看吧,我也不知道怎么回事,

mitnick1964 2003-10-10 12:48:14
#include <stido.h>
main()
{
char c1,c2;
c1=getchar();
printf("\n%c,%d\n",c1,c1);
c1=c1+32;
printf("\n%c,%d\n",c1,c1);
}
为什么我输入
a
会得到
a
a,97
ü,-127
...全文
41 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccwwbb 2003-10-10
  • 打赏
  • 举报
回复
因为c1+32(即97+32)超出字符范围。
#include <stdio.h>
main()
{
char c1,c2;
c1=getchar();
printf("\n%c,%d\n",c1,c1);
c1=c1+1;
printf("\n%c,%d\n",c1,c1);
}

这个程序输出:
a
a,97
b,98

努力偷懒 2003-10-10
  • 打赏
  • 举报
回复
这里高手太多了,轮不到我发表啊!呵呵!只能学习学习,望尘莫及啊!呵呵!
playboyxp 2003-10-10
  • 打赏
  • 举报
回复
#include <stido.h>
main()
{
char c1,c2;
c1=getchar();
printf("\n%c,%d\n",c1,c1);//输出这个字符和这个字符得ascii码
c1=c1+32;
printf("\n%c,%d\n",c1,c1);
}
为什么我输入
a
会得到
a
a,97
ü,-127//得到负值是超出char得范围
dddd8888 2003-10-10
  • 打赏
  • 举报
回复
超范围 -128 至 127
leyt 2003-10-10
  • 打赏
  • 举报
回复
同意
Januarius_ 2003-10-10
  • 打赏
  • 举报
回复
溢出了
Bandry 2003-10-10
  • 打赏
  • 举报
回复
我想你是要这样做吧:
#include <stido.h>
main()
{
char c1,c2;
c1=getchar();
printf("\n%c,%d\n",c1,c1);
if (c1 >== 'A' && c1 <= 'Z') // 加上判断
c1=c1+32;
printf("\n%c,%d\n",c1,c1);
}
为什么我输入
a
会得到
a
a,97
ü,-127
panzhaoping 2003-10-10
  • 打赏
  • 举报
回复
UP
daizh 2003-10-10
  • 打赏
  • 举报
回复
#include <stido.h>
main()
{
char c1,c2;
c1=getchar();//输入a
printf("\n%c,%d\n",c1,c1);//%c表示将c1以字符输出(a),%d表示将c1以整数(a的ASCII值为97)输出(97)
c1=c1+32;//c1=129超出了字符最大128的范围而成-127
printf("\n%c,%d\n",c1,c1);//同上面解释类似
}
tigerhohoo 2003-10-10
  • 打赏
  • 举报
回复
char 的范围是-128~127 超出的部分被截取了

69,368

社区成员

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

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