在执行以下程序时,如果从键盘上输入:ABSdef,然后按<enter>键,则输出为___#include<stdio.h>void main(){ char ch; while((ch=getchar())!='\n') { if(ch>='a'&&ch<='z') ch=ch-32; printf("%c",ch); } printf("\n");}这个程序有点看不懂,所以请高手具体的解释一下,从while((ch=getchar())!='\n')开始解释,详细点啊!(ch=getchar())!='\n'----什么意思??这个具体说一下.结果是次要的,主要分析一下程序.没分了,不好意思啊!
c++中while的用法如下:while(条件) {} 当条件为假时结束循环。如while(0){}。 { }里的命令不执行结束循环; do {} while() 当条件为假时结束循环。 但d0 {} while(0) 先执行一次在结束
先说while((ch=getchar())!='\n'):可以把它分成ch=getchar();while(ch!='\n').前者是调用getchar函数,即ch为从键盘键入的字符.后者括号里指:当键入的不是'\n'(即回车),所以循环结束的条件是输入回车键.然后,这是一个小写字母转化成大写的程序,if(ch>='a'&&ch<='z') //当输入的字符在a和z之间时ch=ch-32; //这个字符的ASCII码减32,即实现小写转换为大写.(因为一个字母的ASCII码,小写比大写大32.其他没什么难懂的了吧
//这个程序的作用就是把输入字符串中的小写字母转为大写字母#include<stdio.h> void main() { char ch;//(ch=getchar())!='\n'等效于ch=getchar();ch!='\n';两句,就是获取一个字符,如果这个字符不为回车就进入循环 while((ch=getchar())!='\n') { //如果ch是小写字母if(ch>='a'&&ch<='z') //小写字母的值-32=相应的大写字母,就是把小写字母转为大写字母ch=ch-32; printf("%c",ch); } printf("\n"); }
while((ch=getchar())!='\n') 是获取的字符 回车符 就停止循环,退出程序.这段程序的意思是获取字符,如果获取的字符不是回车,并且是从小写的a到大写的Z,就是abcd...xyzABC...XYZ,就减去32,转换为另外一个字符,具体转换到什么字符查下ASCII表,然后显示出来.如果获取的字符是回车,就是按ENTER键,就停止循环,退出程序
这里while语句等价于:while(a[i]){a[i]=b[i];i++;j++;}//实现了字符串的复制。这个语句是非常经典的,在C,C++语言中字符串数组是以'\0'结尾的。而这个字符'\0'恰是ASCII码0的字符,char是8字节的整数。这样,在条件语句中判定a字符串是不是结束了,就可直接检查a[i]。而对于a[i++]=b[i++]这个赋值语句的理解,你得注意运算符的优先级。这里先执行赋值,再分别做i,j的加1。