近期一直用惯了C#,陡然间改回C++都有些不习惯了!吐槽一下,C#太方便了!!!
言归正传,C++里有些时候会用到String转char*这个功能,于是进来搜到了一些方法:
假设你申请了这样一个字符串:string str = "This is a test!",那么:
1、str.data()能够返回该字符串相应的char *,如char *p = str.data();
2、str.c_str()也能够返回该字符串相应的char *,如char *p = str.data();
3、事实上还能够使用str.copy()这种方法,如char p[40]; str.copy(p,n,m); 当中n是str的长度,m意味着从p数组的第m个索引開始存储,所以str.copy(p,15,0);就是将整个str字符串存储到p数组里,且是从p[0]開始存储。值得注意的是,str.copy()这种方法要自己手动给字符串数组末尾加入?"\0"!,所以最后应该加上p[15]=‘\0‘;,这样就结束了。
str.copy()详细的资料能够看这里:http://www.cplusplus.com/reference/string/string/copy/
C++ String 转 char*,布布扣,bubuko.com
原文:http://www.cnblogs.com/hrhguanli/p/3804507.html