从字符串修改char数组

Modifying char array from string

本文关键字:数组 char 修改 字符串      更新时间:2023-10-16

我想初始化一个字符串,然后修改结果char数组。我做到了:

std::string str = "hello world";
const char* cstr = str.c_str();
// Modify contents of cstr

但是,由于CSTR是const,我无法修改元素。如果我删除const,则不能使用 c_str()

实现这一目标的最佳方法是什么?

只需使用std::string成员函数修改str

这些功能包括operator[]

由于C 11(并假设实现了合规(,&str[0]是您想要的指针。

做到这一点的最好,最直接的方法就是直接使用自己的operator[]直接修改std::string

str[0] = 'G'; // "Gello world"

如果您真正需要复制C弦,无论出于何种原因,您都必须创建一个新的缓冲区,例如:

char* buffer = new char[str.length() + 1];
strcpy(buffer, str.c_str());
delete[] buffer;

这里明显的缺陷是动态分配。只需坚持直接修改std::string,这就是班级写的,以使您的生活更轻松。