0

私は持っています

cost char* a="test_r.txt"

_rを削除し、代わりに_nを追加して、「test_n.txt」になり、const char*bに保存します。

それを行う最も簡単な方法は何ですか?

4

2 に答える 2

5

の内容を直接変更することはできないaため、コピーが必要になります。

std::string aux = a;
aux[5] = 'n';
const char* b = aux.c_str();
于 2012-09-28T14:21:58.707 に答える
1

前に述べたように、あなたがあなたをに入れるならばconst char *std::stringあなたはあなたのキャラクターを変えることができます。1文字より長い定数の置換に関しては、次の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();
于 2012-09-28T14:42:33.233 に答える