質問編集履歴
2
コードの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
return 1;
|
33
33
|
}
|
34
34
|
|
35
|
-
fpw = fopen("rabbit.txt", "
|
35
|
+
fpw = fopen("rabbit.txt", "w");
|
36
36
|
if (fpw == NULL)
|
37
37
|
{
|
38
38
|
printf("file open error!\n");
|
1
疑問点の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
###
|
3
|
+
### 疑問点
|
4
4
|
dog.txtの"dog"を"rabbit"に置換してrabbit.txtに書き込むプログラムを作成しています。
|
5
5
|
まず、dog.txtの文字列をfgetsで読み込みbufrに格納します。その後、bufwにbufrの配列をコピーします。
|
6
6
|
そして、bufrの中から"dog"を探しそのアドレスをpに格納するというところまでは自力で理解できました。
|
@@ -8,7 +8,8 @@
|
|
8
8
|
その後、if(p)のブロックが置換のプログラムだと思うのですが、何をしているのかがわかりません。どういった操作が行われているのでしょうか?
|
9
9
|
特にq = bufw + (p - bufr); strcpy(q + strlen(str2), p + strlen(str1));のコードがわかりません。
|
10
10
|
|
11
|
-
|
11
|
+
加えて、このプログラムをそっくりそのまま実行してもrabbit.txtには書き込みがされませんでした。
|
12
|
+
|
12
13
|
|
13
14
|
### 該当のソースコード
|
14
15
|
|