c语言位操作大小写转换,C语言实现大小写转换的三种方法

今天心血来潮,总结了下大小写转换的方法,大致有三种。

1.使用C语言提供的函数:toupper(),tolower()

使用这两个函数需要引入头文件:#include

示例代码:

#include

#include

#include

void main( )

{

char a = 'a';

char b = toupper( a );

printf( "%c\n", b);

b = tolower( b );

printf( "%c\n", b);

}

a1935b6d027ef14d0d4dd8d4b8f654f1.png

2.自己编写转换函数:

因为大小写之间的ASCII码值的差值是固定的,因此可以使用‘a’-‘A’来获取差值。

实例代码:

#include

#include

char upChar( char ch )

{

return ( char )( ch - ( 'a' - 'A' ) );

};

char downChar( char ch )

{

return ( char )( ch + ( 'a' - 'A' ) );

};

void main( )

{

char a = 'a';

char b = upChar( a );

printf( "%c\n", b);

b = downChar( b );

printf( "%c\n", b);

}

a1935b6d027ef14d0d4dd8d4b8f654f1.png

3.异或0x20来实现转换:

0x20是16进制,表示为2进制是00100000,这样可能还是不明显,转换为10进制,其实就是32

对了,还是利用32.

异或:相同为0,不同为1.  也就是说,任何数字与0异或都是它本身。

所以将其他位都设为0,把第6位(从左向右)设置为1,也就是0x20

如果第6位是1,则异或结果为0.

如果第6位是0,则异或结果为1.

实现了加减32的操作。

示例代码:

#include

#include

char trans( char ch )

{

ch = ch ^ 0x20;

return ch;

};

void main( )

{

char a = 'a';

char b = trans( a );

printf( "%c\n", b);

b = trans( b );

printf( "%c\n", b);

}

a1935b6d027ef14d0d4dd8d4b8f654f1.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值