char[] 转 char*
char ch[]="abcdef";
char *s = ch;
char* 转 char[]
strcpy()
char *s="abcdef";
char ch[100];
strcpy(ch,s);
循环赋值
char arr[20];
char* tmp = "helloworld";
int i = 0;
while (*tmp != '\0')
arr[i++] = *tmp++;
arr[i] = '\0';
string 转 char[]
string str= "abcdef";
char ch[20];
int i;
for( i=0;i<str.length();i++){
ch[i] = str[i];
}
p[i] = '\0';
char[] 转 string
string str;
char ch[20] = "abcdef";
str = ch;
string 转 char*
data()
data()仅返回字符串内容,而不含有结束符’\0’
string str = "abcdef";
const char* p = str.data();
//使用char * p=(char*)str.data()效果相同
c_str()
c_str()函数返回一个以’\0’结尾的字符数组
string str=“abcdef”;
const char *p = str.c_str();
//使用char * p=(char*)str.c_str()效果相同
copy()
要想指针指向内容及地址不改变,使用该方式
string str=“abcdef”+ '\0';
char *p= new char[str.length()+1];
str.copy(p,str.length(),0);
char* 转 string
直接赋值
string str;
char *p = "abcdef";
str = p;
assign()
要想指针指向内容及地址不改变,使用该方式
char *p = "abcdef";
string str;
str.assign(p,strlen(p));