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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月15日 16时15分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux下简单几步安装AI开发环境-ROS(超有意思)
2019-04-29
epoll详解
2019-04-29
linux入门--磁盘管理之分区、格式化与挂载
2019-04-29
鸿蒙(二)基于小熊派实现LOT上云的智慧家居项目
2019-04-29
开发必备:HTTP 及 TLS
2019-04-29
Windows 11答疑:大家最关心的10个问题
2019-04-29
select、poll、epoll之间的区别
2019-04-29
Shopify!Shopify!Shopify!
2019-04-29
这是美国MarTech最大的一家独立公司:HubSpot
2019-04-29
从开发到产出:关于机器学习的七则干货建议
2019-04-29
你想成为数据科学家吗?不要把机器学习当成入门第一课
2019-04-29
你想成为数据科学家吗?不要把机器学习当成入门第一课
2019-04-29
现代社会悖论:信息泛滥是一只不守规矩的野兽
2019-04-29
如何设计自己的第一个加密交易机器人?
2019-04-29
浪费在Excel上的时间:如何开始专家式机器学习实验追踪?
2019-04-29
失业三星期:我寻找第二份编程工作之路
2019-04-29
跳过媒介,我们能不能只用思想控制计算机?
2019-04-29
服务器宕机:谷歌最近经历了“黑客攻击”吗?
2019-04-29
RepVGG:极简架构,SOTA性能,让VGG式模型再次伟大
2019-04-29
提升查询技能,这7条SQL查询错误必须解决
2019-04-29