C/C++中字符型数字和数值型数字相互转换方法及原理,附字母大小写变换方法

最近碰到这个问题,应该是老生常谈了,第一碰到这个问题应该是上C语言课上以及课本后面的习题,这次来复习一下。这个问题关键在于对ASCII码的了解。
首先简单复习一下什么是ASCII码,ASCII码是由美国国家标准学会制定的美国标准信息交换代码,是一种标准的单字节字符编码方案,用于基于文本的数据。
说白了,就是用数字来表示字符,毕竟计算机里存储的都是数字,没法直接存储字符,所以使用一些数字来表示字符,这就是ASCII码的作用。比如字符0,ASCII码为48(十进制);大写字母A的ASCII码为65(十进制),可以观察到大写字母比小写字母小32(十进制,记住这个数字)。ASCII码一共有128个,下面列举了其中的一部分:

在这里插入图片描述
1、字符型数字数值型数字
以‘1‘转换成1为例,字符型数字在计算机中以ASCII码值存放(二进制表示的49)来存储,数字型数字在计算机中是以二进制的1来存储,所以将字符型数字转换成数字型数字,需要减去48,即减去字符’0‘(ASCII码值为48),即’1‘-’0‘转换成了数字1。相反也是同样的道理,数字1加上48就变成了字符型数字,即1+’0‘转换成了字符型数字’1‘。

//数值型数字转换成字符型数字
#include<iostream>
using namespace std;
int main() {
    int num = 12345;
    string  str;//定义字符串
    for(int i=0;i<5;i++){
        str.insert(0,1,num % 10 + '0');// 整数转字符串: +'0' 
        num = num / 10;
    }
    cout << str<<endl;
    system("PAUSE");
    return 0;
}
#include<iostream>
using namespace std;
int main() {
     string  str="12345";//定义字符串
     int num = 0;
     for(int i=0;i<5;i++){
          num = num * 10 + (str[i] - '0');//str[i] - '0'字符转换成数字
     }
      cout << num<<endl;
      system("PAUSE");
      return 0;
}

2、字母大小写转换
前文中提到大写字母比小写字母的ASCII码小32,所以将大写字母转换成小写字母时,只要加上32即可。

#include<iostream>
using namespace std;
int main() {
    char ch='A';
    ch = ch + 32;
    cout << ch<<endl;
    system("PAUSE");
    return 0;
}
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值