C语言:字母大小写转换

1. 字母大小写转换

 

1)首先简单介绍ASCII码

(摘抄自ASCII码百度百科)

C语言:字母大小写转换_第1张图片

在此ASCII码中可以知道:

A-Z的ASCII值为 : 65-90

a-z的ASCII值为  : 97-122

 

2)开始字母大小写转换

下面通过一个简单的程序进行演示字母的大小写转换(为了方便查看结果,使用printf进行输出)

#include 

int main(void)
{
	// ASCII码表中:
	// A-Z: 65-90
	// a-z: 97-122

	char cLetter;
	char cDifference = 'a' - 'A';     // 计算出大写字母与小写字母的ASCII值的差

	printf("请输入要转换的字母: ");
	scanf_s(" %c", &cLetter);

	if (cLetter - 'Z' <= 0)            // 如果不是大写字母,则进行转换成小写字母
            cLetter += cDifference;	
	else                              // 如果是小写,则进行转换成大写字母
            cLetter -= cDifference;

	printf("转换后的字母: %c", cLetter);
	printf("\n");

	return 0;
}

简单讲解上面的程序:

定义一个char(字符型)的变量cLetter

定义一个char(字符型)的变量cDifference,并且赋值为'a' - 'A'的差

使用scanf_s进行获取输入需要转换的字母,保存到cLetter中

通过if(条件判断)进行判断cLetter(输入的字母),如果为大写则转换为小写(同理小写)

cLetter - 'Z' <= 0 则为判断cLetter(输入的字母)是否为大写的字母

如果为大写则cLetter += cDifference:(同理cLetter -= cDifference)

首先cDifference为 'a' - 'A'的差,也就是 97-65 为 32

假设cLetter为 'A'

已知 'A' 的ASCII码表的值为65

所以 +=cDifference(32) 为 97 (也就是'a'的ASCII码表的值)

最终完成大写转小写的工作

 

再补充:

因为 'a' - 'A'的差为32

假设输入为'a'(97) 减去 32 就是等于 65('A')

假设输入为'A'(65) 加上32 就是等于97('a')

 

 

 

 

 

你可能感兴趣的:(C语言例子)