C++ int与string的转化
int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释。缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀,告诉编译器按照不同进制去解释。8进制(oct)---前缀加0,16进制(hex)---前缀加0x或者0X。
string前后加上双引号,告诉编译器把它当成一串字符来解释。
注意:对于字符,需要区分字符和字符表示的数值。比如:char a = 8;char b = '8',a表示第8个字符,b表示字符8,是第56个字符。
int转化为string
1、使用itoa(int to string)
1 //char *itoa( int value, char *string,int radix);2 // 原型说明:3 // value:欲转换的数据。4 // string:目标字符串的地址。5 // radix:转换后的进制数,可以是10进制、16进制等。6 // 返回指向string这个字符串的指针7 8 int aa = 30;9 char c[8]; 10 itoa(aa,c,16); 11 cout<<c<<endl; // 1e
注意:itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。
2、使用sprintf
1 // int sprintf( char *buffer, const char *format, [ argument] … );2 //参数列表3 // buffer:char型指针,指向将要写入的字符串的缓冲区。4 // format:格式化字符串。5 // [argument]...:可选参数,可以是任何类型的数据。6 // 返回值:字符串长度(strlen)7 8 int aa = 30;9 char c[8]; 10 int length = sprintf(c, "%05X", aa); 11 cout<<c<<endl; // 0001E
3、使用stringstream
1 int aa = 30; 2 stringstream ss; 3 ss<<aa; 4 string s1 = ss.str(); 5 cout<<s1<<endl; // 30 6 7 string s2; 8 ss>>s2; 9 cout<<s2<<endl; // 30
可以这样理解,stringstream可以吞下不同的类型,根据s2的类型,然后吐出不同的类型。
4、使用boost库中的lexical_cast
1 int aa = 30; 2 string s = boost::lexical_cast<string>(aa); 3 cout<<s<<endl; // 30
3和4只能转化为10进制的字符串,不能转化为其它进制的字符串。
string转化为int
1、使用strtol(string to long)
1 string s = "17"; 2 char* end; 3 int i = static_cast<int>(strtol(s.c_str(),&end,16)); 4 cout<<i<<endl; // 23 5 6 i = static_cast<int>(strtol(s.c_str(),&end,10)); 7 cout<<i<<endl; // 17
2、使用sscanf
1 int i; 2 sscanf("17","%D",&i); 3 cout<<i<<endl; // 17 4 5 sscanf("17","%X",&i); 6 cout<<i<<endl; // 23 7 8 sscanf("0X17","%X",&i); 9 cout<<i<<endl; // 23
3、使用stringstream
1 string s = "17"; 2 3 stringstream ss; 4 ss<<s; 5 6 int i; 7 ss>>i; 8 cout<<i<<endl; // 17
注:stringstream可以吞下任何类型,根据实际需要吐出不同的类型。
4、使用boost库中的lexical_cast
1 string s = "17"; 2 int i = boost::lexical_cast<int>(s); 3 cout<<i<<endl; // 17
C++ int与string的转化相关推荐
- C# int与string转化
1.int-->string 1 int a = 15; 2 string s1 = a.ToString(); 3 string s2 = Convert.ToString(a); 2.str ...
- python string转int_Python int与string之间的转化
温馨提示:本文共747个字,读完预计2分钟. Python源代码: print('=========string 转 int==============') a52 = '12' print('十进制 ...
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...
1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...
- C++ int与string的相互转换(含源码实现)
一.int转换成string Ⅰ.to_string函数 c++11标准增加了全局函数std::to_string: string to_string (int val); string to_str ...
- BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据
BinaryWriter类:MSDN以二进制形式将基元类型写入流,并支持用特定的编码写入字符串. 这个MSDN的解释,是不是说BinaryWriter类是将数据以二进制的形式写入文件,在文件中显示的是 ...
- C++ int与string类型相互转化
转自:http://www.cnblogs.com/nzbbody/p/3504199.html int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释.缺省情况下,是当成10进制 ...
- enum与int、String之间的转换
enum与int.String之间的转换 enum<->int enum -> int: int i = enumType.value.ordinal(); int -> en ...
- [转]int转string string转int
string转int 相应为 int i = atoi(str.c_str()); int转string 一.使用atoi 说明: itoa( int value, char *str ...
- String字符串转化为数组遍历出来
@如何把String字符串转化为数组遍历出来 如何把String字符串转化为数组遍历出来 总结是最好的学习方式. 直接上案例代码如下: String a = "1,2,3,4,5,6&quo ...
最新文章
- tomcat 运行php_tomcat可以运行php吗
- java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
- iOS中GCD的魔力
- Python 字符串查找子串的方法之 index() 和 find()
- Vue3(setup函数介绍)
- 开发笔记1 关于指针,结构体使用指针的问题
- chrome15调试-使用devtools作为代码编辑器
- 【python技能树】python编码规范
- 让我们准备祭奠小米帝国
- Unity草地/草坪案例分享(完整代码)
- 基于51单片机的智能温控风扇
- 大型POS机收银系统源码MVC架构
- iphone 如何给cydia添加中文源和威锋源
- 2017、2018年JS面试题记录分享
- 日常开发中linux中最常用的100条命令
- VB.NET合并图片
- mysql errno 1146_Mysql学习MySQL复制出错 Last_SQL_Errno:1146的解决方法
- python通过接口判断公共节假日
- 常用的Java Web框架简介
- arduino与蓝牙模块
热门文章
- python学习-注释、语法、整数、浮点数初步接触
- wordpress留言板comments.php添加自定义字段,php – 如何自定义WordPress comment_form();
- 放大器的传递函数_保证放大器的稳定性什么最重要?反馈电阻一定要选对!
- 微信支付 php编程,PHP编程:微信支付开发交易通知实例
- 2021信阳高中高考成绩查询,河南省普通高中综合信息管理系统2021信阳中考成绩查询入口...
- java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
- linux 单步启动_Linux系统的启动
- python 物联网开发板_物联网学什么开发板好?
- 移动app部分机型无法唤起h5支付宝支付_谜之wxs,uni-app如何用它大幅提升性能
- c语言 fgets函数 去除换行符_C语言文件的打开和关闭