回答編集履歴

2

修正

2022/11/04 03:03

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -1,4 +1,3 @@
1
- 一々終端チェックするよりも範囲外かのほうが簡単ですけど。
2
1
  ```c
3
2
  #include <stdio.h>
4
3
  int main(void){
@@ -10,6 +9,8 @@
10
9
  }
11
10
  }
12
11
  ```
12
+ ---
13
+ 一々終端チェックするよりも範囲外かのほうが簡単ですけど。
13
14
  ```c
14
15
  #include <stdio.h>
15
16
  int main(void){

1

修正

2022/11/03 05:19

投稿

jimbe
jimbe

スコア12648

test CHANGED
@@ -4,9 +4,20 @@
4
4
  int main(void){
5
5
  char b[50+1];
6
6
  scanf("%s", b);
7
- for(char *pt=b; *pt!='\0'; pt++) {
7
+ for(char *pt=b; *pt; pt++) {
8
8
  printf("%c;\n", *pt);
9
- if('1'<=*pt && *pt<='9') for(int n=*pt-'1'; n>0 && pt[1]!='\0'; n--, pt++);
9
+ if('1'<=*pt && *pt<='9') for(int n=*pt-'1'; n && pt[1]; n--, pt++);
10
10
  }
11
11
  }
12
12
  ```
13
+ ```c
14
+ #include <stdio.h>
15
+ int main(void){
16
+ char b[50+1];
17
+ scanf("%s", b);
18
+ for(char *pt=b, *end=&b[strlen(b)]; pt<end; pt++) {
19
+ printf("%c;\n", *pt);
20
+ if('1'<=*pt && *pt<='9') pt += *pt-'1';
21
+ }
22
+ }
23
+ ```