Loading

C++ 数字与字符串之间的转化

与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\((2\le base\le32)\)进制的long int类型,第二个参数可用NULL代替(默认到结尾),第三个参数可用0代替(默认为十进制)
  • strtuol(cha* begin, char* end, int base),将指针区域内的char*转化成base\((2\le base\le32)\)进制的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_stringc_str()string中,stringstreamsstream

string到数字的转化

  • 利用stringstream,操作如上
  • 利用c_str()转化成char*,再利用sscanf()

本文只是一个简单汇总,具体用法请参考其他资料

posted @ 2021-03-08 23:51  Frank_Ou  阅读(404)  评论(0编辑  收藏  举报