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);
}
谁能给我讲解一下这个程序。 展开
#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);
}
谁能给我讲解一下这个程序。 展开
2个回答
展开全部
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,,,,,,,,,,一一对应
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代码转变成对应字符输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询