数值与字符(串)类型转换

数值与字符(串)类型转换

char <=> int

  1. char类型本身就是整数标识的,范围为0-255
    任意一个0-255内的int也可以直接转化为char,对应关系即ASCII码
    code 1 得到的b,c均是a对应的char

  2. 经常需要用到的是(int) 5 <=> (char) 5
    可以用code 2 和code 3 的简单方法

  3. 几个关键的ASCII码
    ‘0’ <=> 32
    ‘a’ <=> 97
    ‘A’ <=> 65
    space <=> 48

//code 1
int a = x; // x is a int from 0-255
char b = char(a);
char c = (char)a;
//if a>255 or a<0; input equals to x mod 256 
//code 2
int a = 5;
char b = (char)(a + '0');
//code 3
char a = 5;
int b = a - '0';

string <=> int

  1. STL 自带 atoi() 函数可以直接将 string 表示的整数转换为 int
    atoi() 可以转换负数,还需注意 string 表示的整数可能溢出
    atoi() 来源于C中的库函数 stdlib.h, 输入是C风格的字符串

  2. STL 中另一个函数stoi() 也可以将 string 表示的整数转换为 int
    stoi() 可以包含进制,可以转换指数表达式

  3. 相关函数
    atol
    string <=> long integer
    atof
    string <=> double
    stol()
    string <=> long int
    stoul()
    string <=> unsigned integer
    strtol()

  4. int to string, itoa()
    itoa() 与 atoi() 对应,可包含进制,但用起来不够顺手

  5. to_string()
    C++11中的函数,很好用

  6. 利用字符串流stringsream 可以快速实现,十进制数转换流畅,很好用

//code 4
string str(xxxxxx);
stringstream ss(str);
int number;
ss>>number;

string <=> char

string.at() 索引得到的即为该位置处的字符
string 与 char 的加法有重载,可以直接把char字符加在string 之后

char* <=> string

c_str() 将string 转换为C风格字符串
char* 可以直接用来初始化string 变量

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值