黑马程序员技术交流社区
标题:
这两个代码的区别在哪,为什么一个能输出全部字符,一...
[打印本页]
作者:
young_star
时间:
2014-11-28 09:55
标题:
这两个代码的区别在哪,为什么一个能输出全部字符,一...
想完成这个:编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变,为什么第一个只能输出字母部分
#include <stdio.h>
int main()
{
char c;
printf("please input a string:");
while((c=getchar())!='\n')
{
if(c>='A'&&c<='W'||c>='a'&&c<='w')
{ char a[3] = {c+1,c+2,c+3};
for(int i = 0;i<3;i++)
printf("%c",a[i]);
}
else
{
if(c>='X'&&c<='Z'||c>='x'&&c<='z')
// c=(c+3)-26;
{
char b[3] = {c-25,c-24,c-23};
for(int i = 0;i < 3; i++)
printf("%c",b[i]);
}
}
}
printf("\n");
return 0;
}
复制代码
这是第二个,能输出全部,但只有一个字母,他是怎么输出全部的,求详解
#include <stdio.h>
main()
{
char c;
printf("please input a string:");
while((c=getchar())!='\n')
{
if(c>='A'&&c<='W'||c>='a'&&c<='w')
{ c=c+3; }
else
if(c>='X'&&c<='Z'||c>='x'&&c<='z')
{ c=(c+3)-26;}
printf("%c",c);
}
printf("\n");
return 0;
}
复制代码
作者:
从今以后
时间:
2014-11-28 15:08
输入一些字符按回车后,getchar() 的特性是每次从缓冲区读取一个字符,然后赋给c,!='\n'则进入循环,进行判断处理后printf("%c",c);,之后进入第二次while循环,getchar()会读取第二个字符给c,重复上述过程,整个循环下来就是输出字符串的效果了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2