|
发表于 2021-6-30 11:25:44
|
显示全部楼层
本帖最后由 jackz007 于 2021-6-30 12:54 编辑
这一句
在 do . . . while 循环的主回路上,当 ch 是大小写字母时,num 是其经过变换的字母,但是,如果 ch 不是大小写字母,那么,num 就会是上一次当 ch 是字母时,经过变换的那个 num,所以,问题的关键是,必须在 ch 是字母时才打印 num。
- #include <stdio.h>
- int main()
- {
- char num , ch ;
- printf("请输入一行英文字母:") ;
- do
- {
- ch = getchar() ;
- if(ch >='A' && ch<= 'Z' || ch >='a' && ch<= 'z') { /* 只处理大小写字母 */
- if(ch >= 'A' && ch <= 'Z') num = ch - 'A' + 'a';
- else num = ch - 'a' + 'A' ;
- putchar(num) ; /* 只有在 ch 是大小写字母的时候才打印输出经过变换过的字符 */
- }
- } while(ch != '\n') ;
- putchar('\n') ;
- return 0 ;
- }
复制代码 |
|