与char字符串的转化
数字到char*的转化
atof(char* str)
将括号内的char*
转化成double
类型atoi(char* str)
将括号里的char*
转化成int
类型atol(char* str)
将括号里的char*
转化成long int
型strtod(char* begin, char* end,)
将指针区域内的char*
转化成double
类型,第二个参数可用NULL
代替strtol(char* begin, char* end, int base)
,将指针区域内的char*
转化成base
((2le basele32))进制的long int
类型,第二个参数可用NULL
代替(默认到结尾),第三个参数可用0
代替(默认为十进制)strtuol(cha* begin, char* end, int base)
,将指针区域内的char*
转化成base
((2le basele32))进制的unsigned long int
类型,第二个参数可用NULL
代替(默认到结尾),第三个参数可用0
代替(默认为十进制)sprintf(char* str, format, number)
,将数字风格化输出,打印到str
中
sprintf()
在stdio.h
中,at
系列和strt
系列在stdlib.h
中
at
系列和strt
系列的相同点:两个系列具有容错能力,即遇到字符串中的非法部分时,会将非法部分前的合法部分保留下来。如果字符串整体非法,则返回(0)。
不同点:strt
系列可以制定转化范围,甚至时整数的进制。而且strt
系列的完整参数有五个,可以详细处理非法情况
char*到数字的转化
sscanf(char* str, format, [argument]...)
风格化从字符串中读取数字
与string字符串的转化
数字到string的转化
-
to_string(number)
将括号内的数字转化成string
类型 -
利用string流
stringstream
,将number转化为string
类型,具体操作为stringstream tmp; tmp << number; tmp >> str
-
利用
c_str()
,将string
类型转化为char*
,再利用上述的char*
与数字的转化
to_string
和c_str()
在string
中,stringstream
在sstream
中
string到数字的转化
- 利用
stringstream
,操作如上 - 利用
c_str()
转化成char*
,再利用sscanf()
本文只是一个简单汇总,具体用法请参考其他资料