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; //

可以这样理解,stringstream可以吞下不同的类型,根据s2的类型,然后吐出不同的类型。 4、使用boost库中的lexical_cast
1 int aa = 30;
2 string s = boost::lexical_cast<string>(aa);
3 cout<<s<<endl; //
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; //

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; //

3、使用stringstream

1 string s = "17";
2
3 stringstream ss;
4 ss<<s;
5
6 int i;
7 ss>>i;
8 cout<<i<<endl; //

注:stringstream可以吞下任何类型,根据实际需要吐出不同的类型。 4、使用boost库中的lexical_cast
1 string s = "17";
2 int i = boost::lexical_cast<int>(s);
3 cout<<i<<endl; //
C++ int与string的转化的更多相关文章
- C++中int与string的转化
C++中int与string的转化 int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释.缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀, ...
- Java int与String互相转化大全
int -> String //int 转化才 string int num = 123456; //方法一 会产生两个String对象 String s1 = num+"" ...
- C++ int 和string互相转化
1.int转换成string );//"-12" );//"12" +);//"1" 2.string转换成int );//"-1 ...
- C# int与string转化
1.int-->string ; string s1 = a.ToString(); string s2 = Convert.ToString(a); 2.string -->int &q ...
- C++11中int,float,double与string的转化
在C++11中可以使用std::to_string()函数将数值转换为string格式,十分方便. 以下部分来选自cplusplus.com. std::to_string string to_str ...
- C++ int转string
一.使用atoi 说明: itoa( int value, char *string, int radix ); 第一个参数:你要转化的int; 第 ...
- linux int to string 方法
最近从windows 移植程序的时候发现to_string()函数在linux 中不能用,网上找了几种方法,觉得使用stringstream对象来实现类型转化比较好一点. 你只需在你工程中加入下面的t ...
- java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换
一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。
1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...
随机推荐
- 【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)
1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(n ...
- (一)Nand FLASH 原理讲解
NAND FLASH 优势 : 可以用当硬盘 这里好像型号是 K9F2G08 基本结构: 不是很难自己看看,暂时不要看
- sqlserver日志管理(转载)
sql 在使用中每次查询都会生成日志,但是如果你长久不去清理,可能整个硬都堆满哦,笔者就遇到这样的情况,直接网站后台都进不去了.下面我们一起来学习一下如何清理这个日志吧 SQL2005清空删除 ...
- DKIM对发送邮件的好处及使用方法
关于DKIM: What is DKIM? 简单的来说dkim有益于增加邮件服务供应商中的反垃圾邮件系统评分,减少邮件内容被评为垃圾邮件的概率. 但使用它不等同于不会被评为垃圾邮件.另外,邮件的发送次 ...
- SVN批处理
前言 我们在项目开发中,使用的版本管理工具有svn git等.这里介绍一下用 bat命令操作svn .这样会给我们带来很大的方便. bat命令 Python等大家一定要掌握哈,会给你带来很多的方便.其 ...
- MySQL免安装数据库配置-Windows8.1
1. 解压Mysql压缩包,将包中my-default.ini复制一份,改名为my.ini,添加一下配置信息到my.ini: [client] port=3306 default-character- ...
- Jquery表单验证
.代码中添加引用(必备引用) <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript&quo ...
- 一个ubuntu phper的自我修养(杂记)
ubuntu使用杂记 1.flatabulous安装使用. flatabulous是一个ubuntu图标主题. 使用它,必须得安装tweak插件. sudo add-apt-repository pp ...
- mysql 链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES))
mysql链接失败(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)) 修改: # ...
- [转]vb socket通信(TCP/UDP)一对一、多对一
VB Socket编程(Winsock控件创建TCP/IP客户机/服务器程序) Winsock控件建立在TCP.UDP协议的基础上,完成与远程计算机的通信.即使对TCP/IP不太熟悉的用户,使用 ...