目录
往期精彩内容:
c语言笔记(正在更新中,敬请期待!)
01-03基于vs2022的c语言笔记——软件安装,写程序前的准备,初识c语言-优快云博客
04基于vs2022的c语言笔记——数据类型_vs2022 c语言输入字符串-优快云博客
导引
有的编程题是这样的
需要你人为输入一个小写,电脑输出大写;人为输入小写,电脑输出大写
比如说下面这样
正文
对于这种问题思考的时候思路很乱,今天我带着大家一起来解决一下
首先我们都会输入一个字母,电脑输出一个字母,也就是下面这样
那么从这一步到达到编程题的要求就是需要构建你输入的字母和电脑输出显示的字母之间的关系
先拿你输入小写字母举例
假如你想输入b(1)
然后电脑输出B(2)
首先对于(1)代码依然是
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char ch;
scanf("%c", &ch);
所谓的变化就是你现在人为输入的只能是小写字母了
那么对于(2)
就需要去寻找b与B之间的关系,从而构造方程
1.把有用的信息一条条分析
英文里大小写字母都有26个
我们都学过字符的加减法,'a'+1='b'
那么利用这个思路
任何一个小写字母都可以用'a'+x(0到25)表示
任何一个大写字母都可以用'A'+x(0到25)表示
那么前面的任意一个小写字母或者大写字母不就是我们前面已经定义了的字符变量ch吗
所以
如果题目要求你输入小写字母
就有ch='a'+x
如果题目要求你输入大写字母
就有ch='A'+x
第一个方程解决输入端
那么接下来我们要寻找输出端的方程
如果你要电脑输出大写字母,假设定义为ch'
那么ch'='A'+x='A'+(ch-'a')
其中的核心思想就是利用大写字母和小写字母个数一样,所以一个小写字母在26个小写字母中的排位和其对应的大写字母在26个大写字母之中的排位一样
如果你要电脑输出小写字母
那么ch'='a'+x='a'+ch-'A'
具体的代码如下
输入小写输出大写
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char ch,y;
scanf("%c", &ch);
//ch = 'a' + x;
int x = ch - 'a';
y = 'A' + x;
printf("%c\n", y);
return 0;
}
输入大写输出小写
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char ch,y;
scanf("%c", &ch);
//ch = 'A' + x;
int x = ch - 'A';
y = 'a' + x;
printf("%c\n", y);
return 0;
}
注意x是整数!