在whlie中\r\n空格的区别

#include <stdio.h>
int main()
{
char c;
while((c=getchar())!=’\n’)//检测到回车,退出循环
{
if((c>=‘a’&&c<=‘z’)||(c>=‘A’&&c<=‘Z’))
{
c=c+4;
if((c>‘Z’&&c<=‘Z’+4)||c>‘z’)c=c-26;
/*小写字母ascii比大写字母ascii码大,所以小写"z"ascii是最大的 ,
而大写字母如不加<=“z”+4,可能会出现小写字母a到w被减26的情况 */
}
printf("%c",c);
}
printf("\n");
return 0;

}
介绍下本人,c语言小萌新一名,上面的程序是我今天遇到的一个难题。
while循环中的/n,我尝试了\r和空格,均不影响执行结果,所以很是纠结,查了各位大神的见解,我总结了下自己的理解。
首先循环结束是因为检测到了enter键,而enter在c语言里就等于\r\n,且程序运行时,按下enter程序才会接收字符串,所以即使程序用了getchar他仍然可以输出整个字符串。
这样\r,\n都可以解释了,但是空格运行也没问题,这点我猜测是因为按了回车所以行尾自动补充了空格,不知是这种情况吗?
注:\n回车加换行
\r只回车不换行,即将光标移至本行行首。

猜你喜欢

转载自blog.csdn.net/qq_39748223/article/details/83986695