回答編集履歴

7

誤字修正

2020/05/20 16:54

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```
14
14
 
15
- `scanf`で読み取った文字列には改行が含まれないので、メモリ上のどこかで`\n`が見つかるまでープが止まりません。
15
+ `scanf`で読み取った文字列には改行が含まれないので、メモリ上のどこかで`\n`が見つかるまでープが止まりません。
16
16
 
17
17
 
18
18
 

6

コード修正

2020/05/20 16:54

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -50,6 +50,6 @@
50
50
 
51
51
  - for (pp = pat; *pp != '\n'; pp++)
52
52
 
53
- + for (pp = pat; *pp != '\n'; pp++)
53
+ + for (pp = pat; *pp != '\0'; pp++)
54
54
 
55
55
  ```

5

コード修正

2020/05/20 16:49

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -44,18 +44,12 @@
44
44
 
45
45
  ---
46
46
 
47
- 以下の2か所のコードは何がしたいのでしょうか?
48
47
 
49
- ```C
50
48
 
51
- for (pp = pat; *pp != '\n'; pp++)
49
+ ```diff
52
50
 
53
- skip[*pp] = strlen(pp) - 1;
51
+ - for (pp = pat; *pp != '\n'; pp++)
52
+
53
+ + for (pp = pat; *pp != '\n'; pp++)
54
54
 
55
55
  ```
56
-
57
- ```C
58
-
59
- pt += (skip[*pt] > strlen(pp)) ? skip[*pt] : strlen(pp);
60
-
61
- ```

4

誤字修正

2020/05/20 16:44

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  ```C
50
50
 
51
- for (pp = pat; *pp != '\0'; pp++)
51
+ for (pp = pat; *pp != '\n'; pp++)
52
52
 
53
53
  skip[*pp] = strlen(pp) - 1;
54
54
 

3

質問追加

2020/05/20 16:21

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -39,3 +39,23 @@
39
39
  }
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ ---
46
+
47
+ 以下の2か所のコードは何がしたいのでしょうか?
48
+
49
+ ```C
50
+
51
+ for (pp = pat; *pp != '\0'; pp++)
52
+
53
+ skip[*pp] = strlen(pp) - 1;
54
+
55
+ ```
56
+
57
+ ```C
58
+
59
+ pt += (skip[*pt] > strlen(pp)) ? skip[*pt] : strlen(pp);
60
+
61
+ ```

2

コード追記

2020/05/20 16:19

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -13,3 +13,29 @@
13
13
  ```
14
14
 
15
15
  `scanf`で読み取った文字列には改行が含まれないので、メモリ上のどこかで`\n`が見つかるまでリープが止まりません。
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ ```diff
24
+
25
+ for (i = 0; i < strlen(txt) / 2; i++) {
26
+
27
+ - char swap = *(pt + i);
28
+
29
+ + char swap = *(txt + i);
30
+
31
+ - *(pt + i) = *(pt + txt_len - i); //ここが入れ替えてる場所です
32
+
33
+ + *(txt + i) = *(txt + txt_len - i - 1); //ここが入れ替えてる場所です
34
+
35
+ - *(pt + txt_len - i) = swap;
36
+
37
+ + *(txt + txt_len - i - 1) = swap;
38
+
39
+ }
40
+
41
+ ```

1

指摘追加

2020/05/20 15:43

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1 +1,15 @@
1
1
  `pt`に値を設定しないまま使用しています。
2
+
3
+
4
+
5
+ ---
6
+
7
+
8
+
9
+ ```C
10
+
11
+ for (pp = pat; *pp != '\n'; pp++)
12
+
13
+ ```
14
+
15
+ `scanf`で読み取った文字列には改行が含まれないので、メモリ上のどこかで`\n`が見つかるまでリープが止まりません。