回答編集履歴

5

アドレス計算結果の表示フォーマットを ptrdiff_t に変更

2023/10/25 01:24

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -15,8 +15,8 @@
15
15
  /* 文字列の検索処理 */
16
16
  for(int i=0; i<WNUM; i++) {
17
17
  for(char *p=words[i]; (p=strstr(p,search)); ) {
18
- printf("%d 番目の文字列の%ld文字目から一致\n", i, (++p)-words[i]);
18
+ printf("%d 番目の文字列の%td文字目から一致\n", i, (++p)-words[i]);
19
19
  }
20
20
  }
21
21
  ```
22
- (私の環境でアドレス計算結果の表示が `%d` は warning になりましたので `%ld` に変えています。)
22
+ (私の環境でアドレス計算結果の表示が `%d` は warning になりましたので ~~%ld~~ `%td` に変えています。)

4

修正

2023/10/24 17:53

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -10,7 +10,7 @@
10
10
  ```
11
11
 
12
12
  検索も、 `strstr` 関数(とポインタ)が扱えればかなり短くなります。
13
- `strstr` は、第一引数のアドレスから第二引数の文字列を探します。見つかればその位置(アドレス)を返し. 見つからなければ `null` を返してきます。
13
+ `strstr` は、第一引数の文字列から第二引数の文字列を探します。見つかればその位置(アドレス)を返し. 見つからなければ `null` を返してきます。
14
14
  ```c
15
15
  /* 文字列の検索処理 */
16
16
  for(int i=0; i<WNUM; i++) {

3

修正

2023/10/24 17:52

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ```
11
11
 
12
- 検索も、 strstr (とポインタ)が扱えればかなり短くなります。
12
+ 検索も、 `strstr` 関数(とポインタ)が扱えればかなり短くなります。
13
- strstr は、第一引数のアドレスから第二引数の文字列を探します。見つかればその位置(アドレス)を返し. 見つからなければ null を返してきます。
13
+ `strstr` は、第一引数のアドレスから第二引数の文字列を探します。見つかればその位置(アドレス)を返し. 見つからなければ `null` を返してきます。
14
14
  ```c
15
15
  /* 文字列の検索処理 */
16
16
  for(int i=0; i<WNUM; i++) {

2

追記

2023/10/24 17:29

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -19,3 +19,4 @@
19
19
  }
20
20
  }
21
21
  ```
22
+ (私の環境でアドレス計算結果の表示が `%d` は warning になりましたので `%ld` に変えています。)

1

追加

2023/10/24 17:20

投稿

jimbe
jimbe

スコア13318

test CHANGED
@@ -8,3 +8,14 @@
8
8
  words[pos2][i] = c;
9
9
  }
10
10
  ```
11
+
12
+ 検索も、 strstr (とポインタ)が扱えればかなり短くなります。
13
+ strstr は、第一引数のアドレスから第二引数の文字列を探します。見つかればその位置(アドレス)を返し. 見つからなければ null を返してきます。
14
+ ```c
15
+ /* 文字列の検索処理 */
16
+ for(int i=0; i<WNUM; i++) {
17
+ for(char *p=words[i]; (p=strstr(p,search)); ) {
18
+ printf("%d 番目の文字列の%ld文字目から一致\n", i, (++p)-words[i]);
19
+ }
20
+ }
21
+ ```