タイトルには、文字列を別の文字列に置き換えるにはどうすればよいですか?たとえば、ユーザーは3つの入力を入力します。最初の入力は、プログラムが置き換える文字列です。 2番目はinput1を置き換える文字列です。 3番目は印刷される文字列です。その場合:1つの文字列のすべての出現をテキストストリームの別の文字列に置き換えます。
入力1 =ピーナッツ
入力2 =ココナッツ
入力3は=
出力を交換ピーナッツを置き換える:私はそれが、私のプログラムを開始している
を交換ココナッツを置き換えます同じ長さの単語だけを置き換えることができます。私は自分の問題を調べてみましたが、私はC/C++で新しくなって以来、与えられた解を理解できません。
char replacing[100];
char replacement[100];
char original[1000];
int count;
cin >> replacing;
cin >> replacement;
while(! cin.eof())
{
cin >> original;
char * pch;
pch = strstr (original, replacing);
count = strlen(replacement);
strncpy (pch, replacement, count);
cout << original << endl;
}
C++を学びたい場合は、C++を習得してください。あなたの問題は[ここ](https://stackoverflow.com/questions/3418231/replace-part-of-a-string-with-another-string)で見つけることができます。あなたがCを学びたいなら、C言語だけを学び、 'strncpy'が何をしているのか調べてください。それを混ぜないでください。そうすればあなたはうまくやってしまう*両方の*方法。 – nvoigt
'std :: string'を使ってみてください。サブストリングを見つけてその一部を置換するメンバ関数を持っています。また、入力ストリームからの読み込みも簡単です。 – Peter
また、ループ状態の 'iostream :: eof'がなぜ間違っていると思われるのですか?(/ q/5605125) –