我尝试打印创建的字符串,但是它不存在。如您所见,输出显示length为0:
#include <iostream>
#include <string>
using namespace std;
int main(){
string a="";
a[0]='a';
a[1]='b';
a[2]='c';
cout<<"length of a: "<< a.length();
}
输出到控制台是:
length of a: 0
最佳答案
您的代码具有未定义的行为,因为您无法访问元素。该字符串具有size()
(与length()
相同)0
,因此a[0]
和其他访问不存在的元素。
要使其正常工作,您必须先对该字符串进行resize()
。
例:
string a;
a.resize(3);
a[0]='a';
a[1]='b';
a[2]='c';
您还可以直接创建具有适当长度的字符串:
string a(3, '\0'); // create a string of length 3 filled with \0 chars
关于c++ - 如果我知道每个索引处的字符,如何创建字符串(在C++中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60952630/