字符串常用char[]和string来存储,前者为C所拥有,当然C++也可以使用;而后者是C++独有的字串类别。
在使用C++处理字串时,时常会char[]和string互转,来符合接下来要使用的函式中参数的型态,假如可以互转自如,那么处理会更简单便利!
很多网上说
string 转 char *
char *p = string.c_str();
这是不对的,稍微测试就可以得到错误原因
正确的做法应该是采取拷贝的方式
string s;
getline(cin,s); // 字符串输入
char str[30];
strcpy(str, s.c_str()); //string 转char*
char* 转string
char *p ="优快云";
string s;
s.assign(p); //char* 转string
cout << s <<endl;