gpt4 book ai didi

c++ - 像数组一样构造 std::string

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:10:14 24 4
gpt4 key购买 nike

我想像数组一样构造一个 std::string 对象:

std::string str("");
str[0] = 'A';
str[1] = 'b';
str[2] = 'h';
str[3] = 'i';
str[4] = '\0';
std::cout<<str;

但它不打印字符串。我错过了什么?

最佳答案

首先,std::string不是 C 字符串。您不需要以 NULL 终止它。其次,[]运算符仅对 < std::string::length() 的索引有效,这意味着在访问 0 之间的元素之前,必须至少提前分配 N 个元素和 N-1 .

std::string str(4); // construct a string of size 4
str[0] = 'A';
str[1] = 'b';
str[2] = 'h';
str[3] = 'i';
std::cout << str;

编辑:但也见 Johnsyweb's answer . std::string的大优势与 C 字符串相比,您不必担心内存分配问题。您可以使用 +=运算符(operator)或 push_back成员函数,并且可以逐个字符地构建字符串,而不用担心要保留多少内存。

关于c++ - 像数组一样构造 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448177/

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