#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main(){
string z;
for(int i=0;i<10;++i){
z[i]='0'+i;
}
z[10]='\0';
cout << z;
return 0;
}
把string z 换成char z[11]
多少string赋个值
class string{
const char *a;
...
}
动态生成不代表你不用生成了,string默认实例化是个空字符串,z[i]相当于数组越界,用string得函数赋值
https://www.cnblogs.com/zhizhan/p/4876093.html
z.resize(20); 假设z最多存20个
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
string z;
z.resize(20); //给z分配空间,不然string一开始是空字符串,用下标访问会越界
for (int i = 0; i < 10; ++i) {
z[i] = '0' + i;
}
z[10] = '\0';
cout << z;
return 0;
}
感觉你的代码会崩溃啊,参考一下楼上代码吧!