gpt4 book ai didi

c++ - 在 C++ 中,std::string::size() 不计算修改后的字符串长度

转载 作者:搜寻专家 更新时间:2023-10-31 00:08:21 24 4
gpt4 key购买 nike

我的代码如下:

int main(){
string s = "abcd";
int length_of_string = s.size();
cout<<length_of_string<<endl;
s[length_of_string] = 'e';
s[length_of_string+1] = 'f';
int length_of_string2 = s.size();
cout<<length_of_string2<<endl;
return 0;
}

据我所知,每个字符串都以 NULL 字符结尾。在我的代码中,我声明了一个长度为 4 的字符串。然后我打印了 length_of_string,其值为 4。然后我修改它并添加两个字符,索引 4 处的“e”和索引 5 处的“f”。现在我的字符串有 6 个字符。但是当我再次读取它的长度时,它显示长度是 4,但我的字符串长度是 6。

在这种情况下,s.size() 函数是如何工作的。不就是count until NULL字符吗?

最佳答案

您的程序的行为未定义

std::string 的长度由 size() 返回。

虽然您可以使用 [] 修改字符串中索引 size() 之前的字符,但是您不能修改上的字符或之后

引用:http://en.cppreference.com/w/cpp/string/basic_string/operator_at

关于c++ - 在 C++ 中,std::string::size() 不计算修改后的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49317827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com