当前位置:   article > 正文

C语言实现大小写转换的三种方法_c中把小写改为大写

c中把小写改为大写

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



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

使用这两个函数需要引入头文件:#include<ctype.h>

示例代码:

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <ctype.h>
  4. void main( )
  5. {
  6. char a = 'a';
  7. char b = toupper( a );
  8. printf( "%c\n", b);
  9. b = tolower( b );
  10. printf( "%c\n", b);
  11. }






2.自己编写转换函数:


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


实例代码:

  1. #include <stdio.h>
  2. #include <conio.h>
  3. char upChar( char ch )
  4. {
  5. return ( char )( ch - ( 'a' - 'A' ) );
  6. };
  7. char downChar( char ch )
  8. {
  9. return ( char )( ch + ( 'a' - 'A' ) );
  10. };
  11. void main( )
  12. {
  13. char a = 'a';
  14. char b = upChar( a );
  15. printf( "%c\n", b);
  16. b = downChar( b );
  17. printf( "%c\n", b);
  18. }



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

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


对了,还是利用32.


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


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


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

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


实现了加减32的操作。


示例代码:

  1. #include <stdio.h>
  2. #include <conio.h>
  3. char trans( char ch )
  4. {
  5. ch = ch ^ 0x20;
  6. return ch;
  7. };
  8. void main( )
  9. {
  10. char a = 'a';
  11. char b = trans( a );
  12. printf( "%c\n", b);
  13. b = trans( b );
  14. printf( "%c\n", b);
  15. }




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/154336
推荐阅读
相关标签
  

闽ICP备14008679号