c++字符串赋值问题
设std::string str="";
str[0]='a';
std::cout<<str;
显示不出str=a
??????
[解决办法]
你还没有为string用于存放字符的地方分配内存空间,这样做自然会出错了。参考下面的代码:
- C/C++ code
#include<string>#include <iostream>using namespace std;int main(){ string str1 = "A"; str1[0] = 'a'; cout << str1 << endl; string str2 = ""; cout << strlen(str2.c_str()) << endl; str2 += 'b'; cout << str2 << endl; return 0;}
[解决办法]
楼上讲解不错。
[解决办法]
我想顶 1楼难道只能打字顶
[解决办法]
[解决办法]
[解决办法]
是的,string的operator[]没那么智能, 自己要小心编程.