【C++ Primer】int 转 string

来源:互联网 发布:包子冷冻生坯技术 知乎 编辑:程序博客网 时间:2024/05/16 09:06

一、使用atoi
        说明:
              itoa( int value, char *string, int radix );
              第一个参数:你要转化的int;
              第二个参数:转化后的char*;
              第三个参数:你要转化的进制;

举例:

#include <iostream>using namespace std;int main(int argc, char* argv[]){int n = 30;char c[10];itoa(n, c, 2);cout << "2-> " << c << endl;itoa(n, c, 10);cout << "10-> " << c << endl;itoa(n, c, 16);cout << "16-> " << c << endl;system("pause");return 0;}

输出:


2-> 11110
10-> 30
16-> 1e

 

二、使用sprintf
       头文件 #include<stdio.h>

       语法: int sprintf( char *buffer, const char *format, [ argument] … ) ;      

       返回值:字符串长度(strlen)

       转换字符

     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

      % 印出百分比符号,不转换。

      b 整数转成二进位。

      c 整数转成对应的 ASCII 字元。

      d 整数转成十进位。

      f 倍精确度数字转成浮点数。

      o 整数转成八进位。

      s 整数转成字串。

      x 整数转成小写十六进位。

      X 整数转成大写十六进位。

     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
举例:

#include <iostream>#include <string>using namespace std;int main(){int n = 30;char c[20];sprintf(c, "%d", n);cout << c << endl;sprintf(c, "%o", n);cout << c << endl;sprintf(c, "%X", n);cout << c << endl;sprintf(c, "%c", n);cout << c << endl;float f = 24.678;sprintf(c, "%f", f);cout << c << endl;sprintf(c, "%.2f", f);cout << c << endl;sprintf(c, "%d-%.2f", n, f);cout << c << endl;system("pause");return 0;}


输出:


30
36
1E
//注:这里是个特殊符号
24.677999
24.68
30-24.68


三、使用stringstream
举例:

#include <iostream>#include <string>#include <sstream>using namespace std;int main(){stringstream strStream;int a = 100;float f = 23.5566;strStream << a << "----"<< f ;string s = strStream.str();cout << s << endl;system("pause");return 0;}



 

输出:


100----23.5566

原创粉丝点击