char[] 转char *
char str[] = "lala";
char *str1 = str;
cout << str1 << endl;
char *转char[]
const char* st = "hello";
char str[] = "world";
strncpy(str,st,strlen(st)+1);
// str = st; 错误
cout<<str<<endl;
const char 转char :拷贝实现,不能进行赋值
const char* st = "hello";
// char* str = const_cast<char*>(str);
char* str = new char[strlen(st)+1];
strcpy(str,st);
cout<<str<<endl;
char 转const char : 直接赋值
char* st = "hello";
// const char* str = const_cast<const char*>(st);
const char* str = st;
cout<<str<<endl;
char *转string
const char* st = "hello-----";
string str = st;
cout<<str<<endl;
st = "hahaha";
string str1(st);
string转char *
string st = "world------";
// char* str = st; 错误
#if 0
const char* str = st.c_str();
char* str1 = const_cast<char*>(str);
#endif
char* str1 = const_cast<char*>(st.c_str());
cout<<str1<<endl;
char *pout =(char *)malloc(_output.size());
_output.copy(pout,_output.size(),0);
write(m_fd,pout,_output.size());
free(pout);
char[]与string
char st[] = "hello";
string str = st;
cout<<str<<endl;
string str1(st); // string str1(st,sizeof(st));
cout<<str1<<endl;
string 转 chart[]
string st = "my test";
char ts[] = "lalalalalalal";
strncpy(ts,st.c_str(),st.length()+1);
cout<<ts<<endl;
c_str与data区别
第一点:c_str()字符串后有'\0',而data()没有。
第二点: data 返回的数组(虽然是char* 但是和 c_str 还是有本质区别的)-----data 能解决一个问题 string 串中 包含 \0 情况的问题。结合size 方法就能随意访问返回的数据了. 注意他返回的是array 数组.