string,char*,char[]转换
string不一定是以null(‘\0’)结束,而char*是
1. string 转const char*
string s1=”abcdef”;
const char *k=s1.c_str();
或者
const char *p=s1.data();
printf(“%s%s”,k,p);
注意:不能去掉const,否则编译不过
string转char*
string s1=”abcdef”;
int len=s1.length();
char * data=(char* )malloc((len+1)*sizeof(char));
s1.copy(data,len,0);
string类的成员函数:
int copy(char* s,int n,int pos) const;
把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回拷贝的数目。
const char* data() const;
返回一个非null终止的c字符数组
const char* c_str() const;
返回一个以null终止的c字符串
string类的构造函数
string(const char* s);
string (int n, char c);
2.char *和char[]转string,都可以直接赋值
char* c=”abc”;
string str=c;