最近一直用惯了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/