【C语言-25】根据键盘输入字符进行大小写字符转换,数字不输出.~~~~~(EOF是什么?)

目录

解题思路:

EOF是什么?

代码示例:

运行结果:


解题思路:

  • 题目要求:编写一个程序,可以一直接收键盘字符;
  • 如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
  • 根据ASCII码,十进制数字65~90对应大写字母A~Z;十进制97~122对应小写字母a~z;
  • 大写字母转换成对应小写字母,十进制加上32;小写字母转换成对应大写字母,十进制减去32;
  • 先判断输入是否为字母,如果不是则不输出,如果是在做相应转换; 
  • 如果是其他的则不输出;
  •  
  • 输入字符串的过程中 如果使用scanf函数 ,存在空格无法输入 的问题  可使用getchar()函数;
  • while((c=getchar())!= EOF)  一边读取一边处理,不需要把字符串完全保存下来,当输入换行时结束程序;

EOF是什么?

  • 文件结束指针”End of File ( EOF ),指读取数据库存放到记录集的结束指针.
  •  
  • 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。
  • EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。
  •  
  • 除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。
  • 还有文件开始指针 Beginning of File (BOF),当EOF和BOF的值相等时 说明取出的数据为空 否则就是存在数据  ;
  •  
  • ASCII表:
  •  
  • 代码示例:

  • #include<stdio.h>
    
    #include<stdlib.h>
    int main() {
    
    	char ch;
    
    	while ((ch = getchar()) != EOF) {
    
    
    		if ((ch >= 'A') && (ch <= 'Z')) 
    
    			printf("%c", ch + 32);
    
    		
    		else if ((ch >= 'a') && (ch <= 'z')) 
    
    			printf("%c", ch - 32);
    		
    	}
    	printf("\n");
    
    		system("pause");
    		return 0;
    }
    
  • 运行结果:

猜你喜欢

转载自blog.csdn.net/weixin_44749767/article/details/89076033
今日推荐