数值与字符(串)类型转换
char <=> int
char类型本身就是整数标识的,范围为0-255
任意一个0-255内的int也可以直接转化为char,对应关系即ASCII码
code 1 得到的b,c均是a对应的char经常需要用到的是(int) 5 <=> (char) 5
可以用code 2 和code 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
STL 自带 atoi() 函数可以直接将 string 表示的整数转换为 int
atoi() 可以转换负数,还需注意 string 表示的整数可能溢出
atoi() 来源于C中的库函数 stdlib.h, 输入是C风格的字符串STL 中另一个函数stoi() 也可以将 string 表示的整数转换为 int
stoi() 可以包含进制,可以转换指数表达式相关函数
atol
string <=> long integer
atof
string <=> double
stol()
string <=> long int
stoul()
string <=> unsigned integer
strtol()int to string, itoa()
itoa() 与 atoi() 对应,可包含进制,但用起来不够顺手to_string()
C++11中的函数,很好用利用字符串流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 变量