char怎么转string,string char*转换
要将字符串转换为char*,请使用string提供的函数c_str (或函数data ) )。 data不仅返回字符串的内容,而且不附加结尾字符() 0。 c_str ) )返回以)0)结尾的字符数组。
const char *c_str (;
c_str ) )函数返回指向正规c字符串的指针。 内容与此string字符串相同。
这是为了与c语言兼容,并且c语言没有字符串类型,因此需要使用字符串对象的成员函数c_str ()将字符串对象转换为c中的字符串样式。
注:请确保使用方法c_str (返回的指针是strcpy ) )函数等进行操作
例如,最好不要这样的:
char* c; 字符串s=’ 1234 ‘; c=s.c_str (; //c最后指示的内容是垃圾,s对象被析构,所以在处理其内容时应该这样使用:
char c[20]; 字符串s=’ 1234 ‘; srcpy(c,s.c_str ) ); 这样就没有错误了。 c_str ) )返回临时指针,无法操作
让我再举一个例子
c_str ()以char*的形式返回string包含字符串
如果函数需要char*参数,可以使用c_str ()方法。
string s=’Hello World!’ ; printf(‘%s ‘,s.c_str ) ); //输出’ Hello World!’ 1、
const char *p=a.data (;
2,
const char *p=a.c_str (;
3、
charp=const_castchar(a.c_str );
char * strc=new char [ strlen (str.c _ str () )1];
strcpy(strc,str.c_str ) );