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的转化的更多相关文章

  1. C++中int与string的转化

    C++中int与string的转化 int本身也要用一串字符表示,前后没有双引号,告诉编译器把它当作一个数解释.缺省情况下,是当成10进制(dec)来解释,如果想用8进制,16进制,怎么办?加上前缀, ...

  2. Java int与String互相转化大全

    int -> String //int 转化才 string int num = 123456; //方法一 会产生两个String对象 String s1 = num+"" ...

  3. C++ int 和string互相转化

    1.int转换成string );//"-12" );//"12" +);//"1" 2.string转换成int );//"-1 ...

  4. C# int与string转化

    1.int-->string ; string s1 = a.ToString(); string s2 = Convert.ToString(a); 2.string -->int &q ...

  5. C++11中int,float,double与string的转化

    在C++11中可以使用std::to_string()函数将数值转换为string格式,十分方便. 以下部分来选自cplusplus.com. std::to_string string to_str ...

  6. C++ int转string

    一.使用atoi 说明: itoa(   int   value,   char   *string,   int   radix   );       第一个参数:你要转化的int;       第 ...

  7. linux int to string 方法

    最近从windows 移植程序的时候发现to_string()函数在linux 中不能用,网上找了几种方法,觉得使用stringstream对象来实现类型转化比较好一点. 你只需在你工程中加入下面的t ...

  8. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

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

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

随机推荐

  1. easyUI 复选框批量操作

    前台js代码 function destroyExcelout(){ //返回选中多行              var row = $('#dg').datagrid('getSelections' ...

  2. Java被忽略的基本知识(四)

    Java IO(不是一般的重要) 54.IO中的流:字节流(InputStream.OutputStream).字符流(Reader.Writer).转换流(InputStreamReader.Out ...

  3. C与C++中的常用提高程序效率的方法

    1.用a++和++a及a+=1代替a=a+1,用a--和--a及a-=1代替a=a-1 通常使用若把一个函数定义为内联函数,则在程序编译阶段,编译器就会把每次调用该函数的地方都直接替换为该函数体中的代 ...

  4. 3D数学的实际应用

    以前自己在学习三维程序开发时并没有在意3D数学在程序中的重要作用,但在实际工作中逐渐发现:自己忽视了3D数学的作用,我们实际开发工作总要求模型准确的变换,而不是强调渲染有多炫,那是游戏,如果是仿真程序 ...

  5. window10 安装SVN 提示权限问题

     http://www.yishimei.cn/network/551.html 经常在网上看到有同学反映,他们在控制面板里卸载软件的时候,总是会出现2502.2503错误代码的问题,并且这个问题大多 ...

  6. C语言的内存分配

    内存分为五大区: 1.栈区:在函数内部声明的变量都存在栈区,只管申请,系统会帮我们自动释放,释放的时间是作用域结束,遵循先进后出(first in last off(FILO)),栈的开辟是连续的,不 ...

  7. Ruby中 Include, Extend, Import, Require 的使用区别

    Include 如下例当你Include一个模块到某个类时, 相当于把模块中定义的方法插入到类中.它允许使用 mixin.它用来 DRY 你的代码, 避免重复.例如, 当你有多个类时, 需要相同的函数 ...

  8. Infinite loop when using cookieless session ID on Azure

    If you use cookieless session ID and deploy them on Azure, you might get infinite loop when you quer ...

  9. 精益化设计:把敏捷方法和Lean UX相结合

    敏捷方法已经成为了主流.同时,Kindle和iPhone等设备取得的巨大成功也推动了体验设计的飞速发展.不过,如何把敏捷方法和UX设计结合起来,一直以来都是一个难题.文章将探讨如何把UX融入到最流行的 ...

  10. 一个多重阴影的DIV框框

    要绝对定位,而且需要设置z-index,垂直高度,数值越小越看不见. <div class="beauty">I am your girl~</div> & ...