<分区>
我想用 php 之类的 boost 替换我的文本。
char* find = "a abc text";
char* search[] = { "a", "b", "c", "d", "e" };
char* replace[] = { "f", "g", "h", "i", "j" };
boost::replace_all(find, search, replace);
但是他无法将“char* const”转换为“int”。
<分区>
我想用 php 之类的 boost 替换我的文本。
char* find = "a abc text";
char* search[] = { "a", "b", "c", "d", "e" };
char* replace[] = { "f", "g", "h", "i", "j" };
boost::replace_all(find, search, replace);
但是他无法将“char* const”转换为“int”。
最佳答案
在 C++ 中,字符串文字(如 "a abc text"
)是只读的,尝试修改字符串文字将导致未定义的行为。这就是为什么您显示的代码应该导致编译器给您一个警告(您有一个指向 const 数据的非常量指针),如果编译器没有警告您,那么您需要启用更多警告。指向字符串文字的指针应始终由 char const*
或更常见的 const char *
组成。
如果你想要一个可修改的字符串,使用std::string
(或者,如果您想要 C 风格的字符串,请使用 char
数组,例如 char find[] = "a abc text"
)。
关于c++ - 字符* 替换为字符*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891119/