回答編集履歴
2
%td に変更
answer
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
while (*ptr != 0) {
|
|
20
20
|
ptr++;
|
|
21
21
|
}
|
|
22
|
-
printf("%
|
|
22
|
+
printf("%td\n", ptr - buffer);
|
|
23
23
|
return 0;
|
|
24
24
|
}
|
|
25
25
|
```
|
1
ソースコード追加
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
|
+
```
|