質問するログイン新規登録

回答編集履歴

2

%td に変更

2020/05/22 10:26

投稿

PingHermit
PingHermit

スコア479

answer CHANGED
@@ -19,7 +19,7 @@
19
19
  while (*ptr != 0) {
20
20
  ptr++;
21
21
  }
22
- printf("%d\n", ptr - buffer);
22
+ printf("%td\n", ptr - buffer);
23
23
  return 0;
24
24
  }
25
25
  ```

1

ソースコード追加

2020/05/22 10:26

投稿

PingHermit
PingHermit

スコア479

answer CHANGED
@@ -5,4 +5,21 @@
5
5
  一般的な日本語として考えると、文字数を数えずに、
6
6
  終端文字の '\0' のポインタ - 先頭のポインタで求めるのではないかと思いますが。
7
7
  通常、ptrdiff_t 型になりますが、終端文字の '\0' のポインタの方が大きいので、
8
- size_t 型にして返します。
8
+ size_t 型にして返します。
9
+
10
+ 関数にしない例
11
+ ```
12
+ #include <stdio.h>
13
+ int main()
14
+ {
15
+ char buffer[128];
16
+ char *ptr = buffer;
17
+ scanf("%s", buffer);
18
+ printf("%s\n", ptr);
19
+ while (*ptr != 0) {
20
+ ptr++;
21
+ }
22
+ printf("%d\n", ptr - buffer);
23
+ return 0;
24
+ }
25
+ ```