int和string以及char *和string的互相转换

注:由于我们经常要用到int和string类型间的转换,且容易搞混,现在我把他们的转换方法整理一下,供大家参考。

Int转换为string 

1).to_string()方法:

int b = 4415;
string a = to_string(b)+to_string(5851);  //添加#inlcude <string>头文件

2).stringstream方法:

string a;
stringstream ss;   //加头文件#include <sstream>
ss<<121;
ss >> a;

3).itoa()方法:

int number = 12345;
char string[25];
_itoa_s(number, string, 10); //第一个参数是整形变量,第二个数是字符串指针,第三个参数是第一个参数的进制表示;vs2013中要用_itoa_s(),用itoa()或_itoa()会报错;


string转换为int

1).atoi()方法:

char *str = "12345.67";
char s1[] = "454144";
string s2="454548";
int i = atoi(str);   //参数是字符指针
int j = atoi(s1);  
int k = atoi(s2.c_str());  //c_str()返回const char *类型;

2). stringstream方法:

int a;
string s="8145";
stringstream ss;  //添加#include <sstream>头文件
ss<<s;  
ss>>a;


char *转换为string

方法一:

string str=”123456”;
char *p=(char*)str.c_str();
char *q=(char*)str.data();

方法二:

string s=”123456”;
Int len=s.size()+1;
char *p=new char[len];
char *q=new char[len];
strcpy_s(p,len,s.c_str());  //最后一个用来存放’\0’;
strcpy_s(q,len,s.data());  

方法三:

string s=”1323456”;
char p[20];
copy(p,5,0);   //5表示复制几个字符,0代表复制的位置;
*(p+5)=’\0’;


char*转换为string

方法一:

char* s="123456";
string str=s;
方法二:

char s[20]=”123456”;
string str=s;


char和int相互转化

标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。char类型的字符在计算机中就是用ASCII码表示的,int和char之间可以相互转化的。

1).char类型‘0’~‘9’转化为int类型0~9

char a=8+'0';     //a='8'
2).int类型0~9转化为char类型‘0’~‘9'
int a='8'-'0'; //a=8

同理可以在int类型0~9和char类型‘a’~'j'之间相互转化,很方便的技巧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值