回答編集履歴
1
先頭が同じ単語があった時の不具合を修正
test
CHANGED
@@ -1,18 +1,16 @@
|
|
1
1
|
以下のようにしてください。
|
2
2
|
```C
|
3
3
|
#include <stdio.h>
|
4
|
-
#include<stdlib.h>
|
4
|
+
#include <stdlib.h>
|
5
|
-
#include<string.h>
|
5
|
+
#include <string.h>
|
6
|
-
|
7
|
-
|
8
6
|
int main()
|
9
7
|
{
|
10
|
-
|
11
8
|
char data[256];
|
12
9
|
FILE *fp;
|
13
10
|
char buf[256];
|
14
|
-
int i;
|
15
|
-
char *p;
|
11
|
+
char *p; //fgets 判定用
|
12
|
+
char *p1; //最初に出現した空白の位置
|
13
|
+
char *p2; //最後に出現した空白の位置
|
16
14
|
int flg = 0;
|
17
15
|
scanf("%s", &buf);
|
18
16
|
|
@@ -23,11 +21,13 @@
|
|
23
21
|
while(1){
|
24
22
|
p = fgets(data, sizeof(data), fp);
|
25
23
|
if (p == NULL) break;
|
26
|
-
|
24
|
+
p1 = strchr(data,' ');
|
25
|
+
if (p1 == NULL) continue;
|
27
|
-
|
26
|
+
p2 = strrchr(data,' ');
|
28
|
-
|
27
|
+
*p1 = '\0';
|
29
|
-
|
28
|
+
p2++;
|
29
|
+
if (strcmp(buf,data) == 0) {
|
30
|
-
fputs(p,
|
30
|
+
fputs(p2,stdout);
|
31
31
|
flg = 1;
|
32
32
|
break;
|
33
33
|
}
|