2016-04-14 10 views
-2

"hello how are you""hello bow are you"に変更しようとしているときに、文字列内のテキストを検索して置き換えるプログラムを作成しようとしています。strstr()が指す値の変更。 C

だからまず私は今、私はどのように次の3つの文字を変更するには考えている"(this position)how are you"へのポインタを返すchar *substring = strstr(mystring, newstr); を使用して"how"を見つけます。文字列の長さはstrlen(newstr)とすることができますが、"how"を置き換えていますが、ポインタnewstrから開始するミストリングを変更する方法が見つかりません。

+4

'*ストリング= 'B';' – EOF

+0

@GeorgeStockerどのようにこの質問が広すぎますか?初心者の質問を理解するのは合理的で簡単です。 –

+0

@JohnKugelman「もし私が読めるものがあれば、私は興奮するだろう」 「プログラムを作ろうとしていますが、バグがどこにあるかを知るためにコード全体を実際に表示しているわけではありません。 –

答えて

5

サブ文字列にサブスクリプトを付けて最初の文字を変更します。

substring[0] = 'b'; 

複数の文字を置き換えたい場合は、ループを実行するか、memcpyを使用します。 strcpyを使わないでください:NULターミネーターをコピーしたくないです。

memcpy(substring, "how", 3); 
+0

Memcpyは私の注意を引き付けることに感謝します。 –

-2

*substring = 'b';ユーザーEOFによって投稿私の解決策は、ほどだったよう

for (int x = 0; x < strlen(newstring); x++){ 
    *substring++ = newstring[x]; 
} 
+1

複数の文字を順番に置き換えたい場合は、行を '* substring ++ = newstring [x];に変更してください。 – EOF

関連する問題