C语言字符转换这句话是什么意思?if(str[i]<='9'&&str[i]>='0') str[i]='z'-str[i]+'0';

源代码是这样的!#include<stdio.h>main(){charstr[80];inti;gets(str);for(i=0;str[i]!='\0';i++)i... 源代码是这样的!
#include <stdio.h>
main()
{
char str[80];
int i;
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]<='9'&&str[i]>='0')
str[i]='z'-str[i]+'0';
puts(str);
}

谁能给我讲解一下这个程序。
展开
 我来答
开怀一笑翁
2016-11-18 · TA获得超过1447个赞
知道小有建树答主
回答量:1138
采纳率:75%
帮助的人:238万
展开全部
gets(str) 把你输入的值给 str[i];
if(str[i]<='9'&&str[i]>='0') 表示你输你输入的值大于等于0 并且小于等于9之间 的话那么就执行下面这条
str[i]='z'-str[i]+'0'; 把用Z字符减去你输入的字字符然后加0字符
puts(str);这个时候就把上面那个字符输出;
其实结果就是当你输入0到9时候, 结果就输出Z、Y ,X、W,,,,,,,,,,一一对应
追问
请在执行str[i]='z'-str[i]+'0'是,‘z’和'0'是不是转换成了ASCII的大小,就是转换成了数字,然后再计算。这句话结束后得到的str[i]是ascii码还是字符?puts(str)是不是可以把ascii代码转变成对应字符?
追答
‘z’和'0' 本来就是 各自对应的ASCII进行 运算。最后存在str[i]是ascii。
puts(str)就是把ascii代码转变成对应字符输出。
一颗程序猿o_0
2016-11-18 · TA获得超过6297个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1349万
展开全部
将输入的字符串中的数字转换成字字母, 0对应z, 1对应y, 2 对应x, 3对应w, 依次类推
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式