转自: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类型相互转化相关推荐

  1. int和String类型的转换

    int和String类型的转换 1. int转换为String类型 public static String valueOf(int i)返回int参数的字符串字符串表示形式.该方法是String类中 ...

  2. int和String类型的相互转换

    int和String类型的相互转换 将一个int类型转化为String类型 方式一:将一个基本类型的数据和字符串拼接 就可以实现将基本类型转换为String String s = 3 + " ...

  3. Java字符串拼接:int和String类型、String和Sting类型

    一.Int和String拼接成String 1.用+拼接 String str = "abc"; int i = 10; String result = str + i; 2.将i ...

  4. int类型转换String类型,String类型转换成int类型

    一.int 类型转换 成String类型 定义一个int类型int i =100;//方法一:使用 i+""; String s1 = i+"";//方法二:S ...

  5. Java int 转 String 类型,java类型转换

    int类型转String类型有下面几种方式: String var = num + ""; Strng var = String.valueOf(num); String var ...

  6. 【java】JAVA中int转String类型有三种方法

    String.valueOf(i) Integer.toString(i) i+"" i+""也就是一个int型的常量.+上个空的字符串,这里牵涉到了strin ...

  7. int转为string类型方法

    1)String类的valueOf()方法 int i=5; String s=String.valueOf(i); 2)Integer类的Integer.toString()方法 int i=5; ...

  8. java int和String类型之间的相互转换

    String --> int 第一种方法:int i = Integer.parseInt(s); 第二种方法:int i = Integer.valueOf(s).intValue(); 两种 ...

  9. pythonbyte转int_Python int与byte类型相互转化

    根据Python自定义的功能,使用to_bytes函数转化int类型数据为byte型,然后使用from_bytesa将byte类型数据转化为int型. def to_bytes(self, lengt ...

最新文章

  1. mysql 错误1930xc1_Mysql写入记录出现 Incorrect string value: '\xB4\xE7\xB1\xCA\xBC\xC7‘错误?(写入中文)...
  2. Linux服务器信息检测Shell脚本
  3. 解决LNMP环境下客户端远程连接不上mysql的问题(已经排除防火墙/selinux问题)...
  4. spring boot 所有引用jar包及作用
  5. BZOJ2154: Crash的数字表格 BZOJ2693: jzptab
  6. mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数
  7. serv u服务器显示图片,图解经典FTP服务器工具 SERV-U最安全的设置【防止被入侵】...
  8. 退休后多长时间能领到工资?
  9. 2021,我的年终总结......
  10. 莱斯康混响插件合集 – Lexicon Plugin Bundle macOS
  11. 手机和电脑如何快速传大文件
  12. 猿创征文 | Python 开发工具进化之旅
  13. 图像传感器binning_CMOS图像传感器调试问题汇总
  14. 基于OpenCV的视频场景切割神器
  15. 【工控老马】用西门子PLC构成管道压力控制系统
  16. 索骥馆-编程语言之《程序语言的奥妙:算法解读(四色全彩)》扫描版[PDF]
  17. python发送邮件一
  18. games101学习笔记_Geometry1(几何)
  19. 各地数据显示上半年28省GDP增幅超全国水平
  20. 人工智能伦理风险治理具有复杂性,尚未形成完善的理论架构和治理体系

热门文章

  1. 银行客户还款可能性预测
  2. 应届生求职数据分析师指南
  3. 从ICLR 2022看什么是好的图神经网络?
  4. 寻找想改变人工智能的“大人物”!2019百度奖学金正式启动
  5. Web前端中级认证php,1+x 证书 Web 前端开发中级理论考试 (试卷 6 )
  6. java hibernate sql,Java Hibernate中使用SQL 而不使用HQL
  7. idea2021如何开启RunDashboard
  8. ElasticSearch和mongodb的对比
  9. 牛客题霸 NC28 最小覆盖子串
  10. Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面