在c++中经常要进行char string CString 之间的互相转化,今天就研究总结下。
char 和 string的转化
char* str = "master";
std::String s = str; 可以直接赋值
const char * str3 = s.c_str();
注意这里要加上const进行转化。
int 转string
int i =10;
char s123[10];
itoa( 10,s123,10);
还可以使用sprintf ,和printf一样具有格式化输出的作用,只不过一个是输出到控制到,一个是输出大char 数组里面
int j =100;
sprintf(s123, "%d我是一个%d", i, j); //这里要注意的是s123[10] 10 个字节存放不了%d我是一个%d这些,会导致stack溢出。
还可以使用sstream
ostringstream s22;
s22<<i<<"我是一个"<<j<<endl;
string s23 = s22.str();
string cstring char* 转int 就用atoi 就行了。
int i = 0;
string str = "123";
cout<< atoi(str.c_str()); //int atoi(const char *)
另外
int 转 CString :
CString.Format("%d",int);
...............................
string 转 CString
CString cs
cs.format("%s", string.c_str());
用c_str()确实比data()要好.
.......................................
char* 转 CString
CString.format("%s", char*);
CString strtest;
char * charpoint;
charpoint="give string a value";
strtest=charpoint;
...................................................................
CString 转 int
CString ss="1212.12";
int temp=atoi(ss); //atoi _atoi64或atol