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的转化相关推荐

  1. C# int与string转化

    1.int-->string 1 int a = 15; 2 string s1 = a.ToString(); 3 string s2 = Convert.ToString(a); 2.str ...

  2. python string转int_Python int与string之间的转化

    温馨提示:本文共747个字,读完预计2分钟. Python源代码: print('=========string 转 int==============') a52 = '12' print('十进制 ...

  3. c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。...

    1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...

  4. C++ int与string的相互转换(含源码实现)

    一.int转换成string Ⅰ.to_string函数 c++11标准增加了全局函数std::to_string: string to_string (int val); string to_str ...

  5. BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据

    BinaryWriter类:MSDN以二进制形式将基元类型写入流,并支持用特定的编码写入字符串. 这个MSDN的解释,是不是说BinaryWriter类是将数据以二进制的形式写入文件,在文件中显示的是 ...

  6. C++ int与string类型相互转化

    转自:http://www.cnblogs.com/nzbbody/p/3504199.html int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释.缺省情况下,是当成10进制 ...

  7. enum与int、String之间的转换

    enum与int.String之间的转换 enum<->int enum -> int: int i = enumType.value.ordinal(); int -> en ...

  8. [转]int转string string转int

    string转int 相应为 int i = atoi(str.c_str()); int转string 一.使用atoi 说明: itoa(   int   value,   char   *str ...

  9. String字符串转化为数组遍历出来

    @如何把String字符串转化为数组遍历出来 如何把String字符串转化为数组遍历出来 总结是最好的学习方式. 直接上案例代码如下: String a = "1,2,3,4,5,6&quo ...

最新文章

  1. tomcat 运行php_tomcat可以运行php吗
  2. java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
  3. iOS中GCD的魔力
  4. Python 字符串查找子串的方法之 index() 和 find()
  5. Vue3(setup函数介绍)
  6. 开发笔记1 关于指针,结构体使用指针的问题
  7. chrome15调试-使用devtools作为代码编辑器
  8. 【python技能树】python编码规范
  9. 让我们准备祭奠小米帝国
  10. Unity草地/草坪案例分享(完整代码)
  11. 基于51单片机的智能温控风扇
  12. 大型POS机收银系统源码MVC架构
  13. iphone 如何给cydia添加中文源和威锋源
  14. 2017、2018年JS面试题记录分享
  15. 日常开发中linux中最常用的100条命令
  16. VB.NET合并图片
  17. mysql errno 1146_Mysql学习MySQL复制出错 Last_SQL_Errno:1146的解决方法
  18. python通过接口判断公共节假日
  19. 常用的Java Web框架简介
  20. arduino与蓝牙模块

热门文章

  1. python学习-注释、语法、整数、浮点数初步接触
  2. wordpress留言板comments.php添加自定义字段,php – 如何自定义WordPress comment_form();
  3. 放大器的传递函数_保证放大器的稳定性什么最重要?反馈电阻一定要选对!
  4. 微信支付 php编程,PHP编程:微信支付开发交易通知实例
  5. 2021信阳高中高考成绩查询,河南省普通高中综合信息管理系统2021信阳中考成绩查询入口...
  6. java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
  7. linux 单步启动_Linux系统的启动
  8. python 物联网开发板_物联网学什么开发板好?
  9. 移动app部分机型无法唤起h5支付宝支付_谜之wxs,uni-app如何用它大幅提升性能
  10. c语言 fgets函数 去除换行符_C语言文件的打开和关闭