首先感谢天使的耐心讲解,不过我还是有些疑问!这句话要加在程序的什么地方?
是在if((C>='A'&&C<='Z'))||(C>='a'&&C<='z'))语句后面么?还是在别的地方?我还有些搞不懂的就是这句话中的c的值是加4
之后的值还是未加4的值这句话的意思~如果这个c加4后='Z'的话,那么'Z'的ASCII值减去'A'的ASCII值的结果再+4肯定就大于26
了,那么'Z'不在26个字母中了么?
你上个帖子的猜测是对的!!!
不过后面的与就不用了!!!因为你前面已经对范围判断了!if((C>='A'&&C<='Z'))||(C>='a'&&C<='z'))
谢谢哥哥提点~不过天使哥哥如果有耐心和时间的话能不能帮我解除一下我前面的疑惑呢~
不胜感激!
main()
{char c;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z'||(c>='A'&&<='Z'))
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')c=c-26;
}
printf("%c",c)
这样应该可以的!!!我只是没在机器上试过!
还是举个例子说比较好:
如果用原来的C+4大于‘Z’(我们现在只讨论大写英文字母),只有四个字符可以,也就是‘W’,‘X’,‘Y’,‘Z’;
当为‘W’时,它的ASCII码是87,这时它加四为91,大与‘Z’的90,(c-‘A’+4)%26+'A的值为65,也就是‘A’,
后面的‘X’,‘Y’,‘Z’都依次加一,为‘B’,‘C’,‘D’,而加四不大与90的,%26与否也就无所谓了!
我不太清楚(c-‘A’+4)%26+‘A’的意思!
但是A到V加4可以
可W到Z在加4的话就成什么了
所以W到Z就要先加4后在减26了也就是使A变成D,X变成B,Y变成C,W变成A
是不是啊!我问问你们啊!分别用函数,指针 ,指针函数怎么传送二维数组啊
请你们演示一下 问题有点低级 无奈!!