C++ int与string类型相互转化
转自:http://www.cnblogs.com/nzbbody/p/3504199.html
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
5、使用atoi(const char*)
1 string s = "17"; 2 int i = atoi(s.data); 3 cout<<i<<endl; // 17
C++ int与string类型相互转化相关推荐
- int和String类型的转换
int和String类型的转换 1. int转换为String类型 public static String valueOf(int i)返回int参数的字符串字符串表示形式.该方法是String类中 ...
- int和String类型的相互转换
int和String类型的相互转换 将一个int类型转化为String类型 方式一:将一个基本类型的数据和字符串拼接 就可以实现将基本类型转换为String String s = 3 + " ...
- Java字符串拼接:int和String类型、String和Sting类型
一.Int和String拼接成String 1.用+拼接 String str = "abc"; int i = 10; String result = str + i; 2.将i ...
- int类型转换String类型,String类型转换成int类型
一.int 类型转换 成String类型 定义一个int类型int i =100;//方法一:使用 i+""; String s1 = i+"";//方法二:S ...
- Java int 转 String 类型,java类型转换
int类型转String类型有下面几种方式: String var = num + ""; Strng var = String.valueOf(num); String var ...
- 【java】JAVA中int转String类型有三种方法
String.valueOf(i) Integer.toString(i) i+"" i+""也就是一个int型的常量.+上个空的字符串,这里牵涉到了strin ...
- int转为string类型方法
1)String类的valueOf()方法 int i=5; String s=String.valueOf(i); 2)Integer类的Integer.toString()方法 int i=5; ...
- java int和String类型之间的相互转换
String --> int 第一种方法:int i = Integer.parseInt(s); 第二种方法:int i = Integer.valueOf(s).intValue(); 两种 ...
- pythonbyte转int_Python int与byte类型相互转化
根据Python自定义的功能,使用to_bytes函数转化int类型数据为byte型,然后使用from_bytesa将byte类型数据转化为int型. def to_bytes(self, lengt ...
最新文章
- mysql 错误1930xc1_Mysql写入记录出现 Incorrect string value: '\xB4\xE7\xB1\xCA\xBC\xC7‘错误?(写入中文)...
- Linux服务器信息检测Shell脚本
- 解决LNMP环境下客户端远程连接不上mysql的问题(已经排除防火墙/selinux问题)...
- spring boot 所有引用jar包及作用
- BZOJ2154: Crash的数字表格 BZOJ2693: jzptab
- mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数
- serv u服务器显示图片,图解经典FTP服务器工具 SERV-U最安全的设置【防止被入侵】...
- 退休后多长时间能领到工资?
- 2021,我的年终总结......
- 莱斯康混响插件合集 – Lexicon Plugin Bundle macOS
- 手机和电脑如何快速传大文件
- 猿创征文 | Python 开发工具进化之旅
- 图像传感器binning_CMOS图像传感器调试问题汇总
- 基于OpenCV的视频场景切割神器
- 【工控老马】用西门子PLC构成管道压力控制系统
- 索骥馆-编程语言之《程序语言的奥妙:算法解读(四色全彩)》扫描版[PDF]
- python发送邮件一
- games101学习笔记_Geometry1(几何)
- 各地数据显示上半年28省GDP增幅超全国水平
- 人工智能伦理风险治理具有复杂性,尚未形成完善的理论架构和治理体系
热门文章
- 银行客户还款可能性预测
- 应届生求职数据分析师指南
- 从ICLR 2022看什么是好的图神经网络?
- 寻找想改变人工智能的“大人物”!2019百度奖学金正式启动
- Web前端中级认证php,1+x 证书 Web 前端开发中级理论考试 (试卷 6 )
- java hibernate sql,Java Hibernate中使用SQL 而不使用HQL
- idea2021如何开启RunDashboard
- ElasticSearch和mongodb的对比
- 牛客题霸 NC28 最小覆盖子串
- Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面