当前位置: 技术问答>linux和unix
请问,LINUX的C++中,如何将string类型与char数组一次性互相转换?
来源: 互联网 发布时间:2015-11-17
本文导语: 请问,LINUX的C++中,如何将string类型与char数组一次性互相转换?不用循环,谢谢 | string类型与char数组一次性互相转换??? 几乎是办不到的,若把string当作char数组的话,string提供了一种方法,就是strin...
请问,LINUX的C++中,如何将string类型与char数组一次性互相转换?不用循环,谢谢
|
string类型与char数组一次性互相转换???
几乎是办不到的,若把string当作char数组的话,string提供了一种方法,就是string::c_str(),但是它仅代表常量字符串,也就是说用const来修饰的,只能访问其内容,无法修改其内容,因为若修改了其内容的话,string本身是C++类实现的,它在析构的时候会释放存放字符的内存,如果你这样做了的话,会造成内存泄漏的,所以string::c_str()大多数时候可以当作字符数组使用,但在某些时候是不能通用的
几乎是办不到的,若把string当作char数组的话,string提供了一种方法,就是string::c_str(),但是它仅代表常量字符串,也就是说用const来修饰的,只能访问其内容,无法修改其内容,因为若修改了其内容的话,string本身是C++类实现的,它在析构的时候会释放存放字符的内存,如果你这样做了的话,会造成内存泄漏的,所以string::c_str()大多数时候可以当作字符数组使用,但在某些时候是不能通用的
|
非常的简单,显然你没有使用过Glib, 在终端输入pkg-config glib-2.0 --cflags --libs看看会有什么。
可以使用GString* CheckConvert = g_string_new("I love Linux");
char* ConvertString = CheckConvert->str;
是不是很简单?
可以使用GString* CheckConvert = g_string_new("I love Linux");
char* ConvertString = CheckConvert->str;
是不是很简单?
|
string::c_str()
|
字符数组用string::data,字符串用c_str。
|
char str_src[]="aaaaabbbbb";
string str = new string(str_src,strlen(str_srt)+1);
string str = new string(str_src,strlen(str_srt)+1);
|
我在自己目前的项目中是自己写一个String。不过没用做很好的优化。
|
直接用memcpy
^_^
^_^