c++中经常遇到string,char*,int之间的相互转化,今天就来整理一下。
以下是转载并修改的内容:
以下是常用的几种类型互相之间的转换
string 转 int
先转换为char*,再使用atoi()函数,具体如下
..............................
char* 转 int
#include <stdlib.h> int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
...................................................................
int 转 string
可以使用stringstream类(需要包含<sstream>头文件)
int main()
{
stringstream ss;
int i = ;
string str;
ss >> i;
ss << str; //这时str中就是字符串"100".
retturn ;
} .............................
char* 转 string
string s(char *);
你的只能初始化,在不是初始化的地方最好还是用assign().
tip:也可以通过强制类型转换,如:
char buf[20]={0};
string s=(string)buf;
但是并不建议采用这种方法
..................................................................
int 转 char *
在stdlib.h中有个函数itoa()
itoa的用法:
itoa(i,num,);
i 需要转换成字符的数字
num 转换后保存字符的变量
转换数字的基数(进制)10就是说按照10进制转换数字。
还可以是2,,16等等你喜欢的进制类型
原形:char *itoa(int value, char* string, int radix); 实例:
#include "stdlib.h"
#include "stdio.h"
main()
{
int i=;
char s[];
itoa(i,s,);
printf("%s",s);
getchar();
}
..........................................
string 转 char *
char *p = string.c_str(); string aa("aaa");
char *c=aa.c_str();
string mngName;
char t[];
memset(t,,);
strcpy(t,mngName.c_str());
..........................................