我有
cost char* a="test_r.txt"
我想剥离 _r 并添加 _n 而不是它,使其变为“test_n.txt”并将其保存在 const char* b 中;
最简单的方法是什么?
我有
cost char* a="test_r.txt"
我想剥离 _r 并添加 _n 而不是它,使其变为“test_n.txt”并将其保存在 const char* b 中;
最简单的方法是什么?
您不能直接修改 的内容a
,因此您需要进行一些复制:
std::string aux = a;
aux[5] = 'n';
const char* b = aux.c_str();
就像之前提到的,如果你把你的const char *
放入一个std::string
,你可以改变你的字符。关于替换长于一个字符的常量,您可以使用以下find
方法std::string
:
const char *a = "test_r_or_anything_without_r.txt";
std::string a_copy(a);
std::string searching("_r");
std::string replacing("_n");
size_t pos_r = 0;
while (std::string::npos != (pos_r = a_copy.find(searching, pos_r)))
{
a_copy.replace(a_copy.begin() + pos_r,
a_copy.begin() + pos_r + searching.length(),
replacing.begin(), replacing.end());
}
const char *b = a_copy.c_str();