c语言大小写字母转换的三种方法 到 思考指针(超详细)

本文介绍了C语言中转换字符大小写的三种方法:利用ASCII值的差值、按位异或以及使用ctype.h库中的tolower和toupper函数。作者通过实例展示了如何通过指针操作和表达式求值实现字符转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

总结摆在前面

1.指针思考的拓展

2.浅提一下表达式求值 

三种方法

1.利用ASCII相差32

1.1以表达式求值的思考方式

1.2以指针的方式

2.通过按位异或来求(我觉得太巧合了,不推荐)

3.通过库函数(这个看你积累)

3.1  tolower函数——转换字符位小写

定义

参数

返回值 

3.2  toupper——转换字符为大写

定义

参数

返回值 

3.3上代码


前言

经过网上资料的参考和自己的总结,c语言大小写字母转换至少有三种方法。对于我们c语言初学者来说,其实可以通过该问题的思考,从ASCII表到表达式求值再指针,初步感受他们的魅力所在。

总结摆在前面

1.指针思考的拓展

指针广义上来说,可以不仅仅是十六进制的地址,ASCII中的值又何尝不是一种地址,告诉你ASCII的值就相当于告诉了他的指针,通过指针我们可以找到其对应的字符。对ASCII值(指针)进行加减运算,可以得到另一个指针,对应另一个字符。如

dec ch
65 A
97 a

A的ASCII值为65,也可以理解为A的地址(指针)是65(0x41),指针加32,变为97,指针最后就指向了字符a。

2.浅提一下表达式求值 

 对于表达式求值,笔者在从二进制和内存的底层来探究同一数据在不同类型下的调用(链接)中分享了我对表达式求值的思考。这里我再分享一些新的看法

不管是定义一个变量,数组,抑或是函数,首先都有一个地址,地址一定会返回一个值(真数字),然后再根据你的数据类型,转换成或int,或char等的数据。

char ch = 'A' + 32;

我们要将’A'+32看成表达式求值,为97,char类型的97就是a了。

三种方法

1.利用ASCII相差32

1.1以表达式求值的思考方式

#include<stdio.h>
int main()
{
    char ch;
    printf("请输入:>>");
    scanf("%c", &ch);
    if (ch >= 'a' && ch <= 'z')
    {
        ch -= 32;
        printf("%c\n", ch);
    }
    else if (ch >= 'A' && ch <= 'Z')
    {
 
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值