C/C++字符串数字相互转换
发布日期:2021-06-29 14:44:09 浏览次数:3 分类:技术文章

本文共 3780 字,大约阅读时间需要 12 分钟。

字符串 <=> 数值                                  2020/3/13=========================================================================================1.str-->number//1.1.C funsint atoi(const char *str)           //字符串转整型double atof(const char *str)        //字符串转单doublelong int atol(const char *str);     //字符串转单长整型unsigned long int strtoul(const char *str, char **endptr, int base)                                    //str字符串转无符号长整数long int strtol(const char *str, char **endptr, int base)                                                    //str所指向字符串转长整数 double strtod(char *str, char *end) //字符串转double(end=NULL转化结束的str)double strtod(const char *str, char **endptr)                                                                  //str所指字符串转浮点double //1.2.
: str转数字int stoi (const string& str, size_t* idx = 0, int base=10);//stoi("100")==stoi(s) //idx返回首个非数字指针索引long stol();unsigned long stoul(); long long stoll(); unsigned long long stoull();float stof(); double stod();long double stold() //1.3.sscanf()//1.4.stringstream;istringstream读字符串=========================================================================================//实例1:str-->numberdouble d=atof(s.c_str()); //string->double//实例2:str-->number:sscanf()int x0,x1;double x2;char str0[]="AF",str1[]="12",str2[]={"3.14"};sscanf(str0,"%x",&x0); //16进制转换成10进制sscanf(str1,"%d",&x1);sscanf(str2,"%lf",&x2);//实例3.1:str-->number:
stringstream double x;string str="1.2";stringstream ss; ss << str; ss >> x;//实例3.2:str-->number:istringstream读字符串,类似sscanf()int x;string str = "25"; istringstream ss;ss.str(str);ss >> x; //x=25=========================================================================================2.数值转字符串//2.1.C funcvoid itoa(int num, char *str, 10) //整形转字符串; 结果存str,10进制-平台相关ltoa(l, temp, 10) //将长整型值转换为字符串ultoa() //将无符号长整型值转换为字符串void gcvt(float num, int n, char *str)//浮点型转字符串(参数2有效位数)//1.2.string std::to_string(N)string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long val);string to_string (float val);string to_string (double val);string to_string (long double val);//2.2.sprintf()sprintf(char *str, format,...) //其他类型转str//2.3.
stringstream3.byteint mblen(const char *str, size_t n) //返回str 所指向的多字节字符的长度size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) //把str指向多字节字符的字符串转换为参数 pwcs 所指向的数组int mbtowc(whcar_t *pwc, const char *str, size_t n) //检查参数 str 所指向的多字节字符。size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) //把数组pwcs存储的编码转换为多字节字符,并存储在字符串 str 中int wctomb(char *str, wchar_t wchar) //检查对应于参数 wchar 所给出的多字节字符的编码。========================================================================================= //实例1:number => str:sprintf()char str0[10],str1[10],str2[10];int x0=0xAF,x1=20,x2=3.14;sprintf(str0,"%x",x0); //转16进制,大写用X,8进制是osprintf(str0,"%X",x0); //10进制转16进制,输出大写字母sprintf(str1,"%d",x1); //d,u有,无符号10进制数sprintf(str2,"%.3lf",x2);//实例2.1:number => str:stringstream #include
#include
using std::string,std::to_stringint N = 10;string s; stringstream ss; ss << N; ss >> s; printf("%s\n", s.c_str());//10 //实例2.2:number => str:ostringstream写字符串,类似sprintf()int i = 22;ostringstream ss1;ss1 << "Hello " << i << endl;string str = ss1.str();cout << str;//实例3:number => str :string std::to_string(N);std::string pi = "pi=" + std::to_string(3.1415926);=========================================================================================

 

转载地址:https://chunyou.blog.csdn.net/article/details/104834364 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:VS内存泄漏检查 tcy
下一篇:python实现Pyqt5信号槽在多线程中的应用(类相互调用) tcy

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月15日 16时15分26秒