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

回答編集履歴

4

変更

2017/01/08 03:07

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -2,7 +2,7 @@
2
2
  ```c
3
3
  #include <stdio.h>
4
4
 
5
- void del_digit(char s[]) {
5
+ char *del_digit(char s[]) {
6
6
  int i,j;
7
7
  for (i=j=0; s[i]; i++) {
8
8
  if (s[i] - '0' >= 10) {
@@ -11,18 +11,16 @@
11
11
  }
12
12
  }
13
13
  s[j]=s[i];
14
+ return s;
14
15
  }
15
16
 
16
17
  int main (void) {
17
18
  char w[50];
18
- int j;
19
19
 
20
20
  printf("文字列を入力してください\n");
21
21
  scanf("%s", w);
22
22
 
23
- del_digit(w);
24
-
25
- printf("%s\n", w);
23
+ printf("%s\n", del_digit(w));
26
24
  return 0;
27
25
  }
28
26
  ```

3

変更

2017/01/08 03:07

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -3,15 +3,12 @@
3
3
  #include <stdio.h>
4
4
 
5
5
  void del_digit(char s[]) {
6
- int i = 0;
6
+ int i,j;
7
- int j = 0;
8
-
9
- while (s[i]) {
7
+ for (i=j=0; s[i]; i++) {
10
8
  if (s[i] - '0' >= 10) {
11
9
  s[j]=s[i];
12
10
  j++;
13
11
  }
14
- i++;
15
12
  }
16
13
  s[j]=s[i];
17
14
  }

2

修正

2017/01/07 08:23

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,10 +1,10 @@
1
- 数字を削除するのであれば
1
+ 数字を削除するのであれば、(ご指摘を受け、jの初期化を入れました、ありがとうございます)
2
-
3
2
  ```c
4
3
  #include <stdio.h>
5
4
 
6
5
  void del_digit(char s[]) {
7
- int j, i = 0;
6
+ int i = 0;
7
+ int j = 0;
8
8
 
9
9
  while (s[i]) {
10
10
  if (s[i] - '0' >= 10) {

1

変更

2017/01/07 08:10

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -5,7 +5,6 @@
5
5
 
6
6
  void del_digit(char s[]) {
7
7
  int j, i = 0;
8
- int flag = 0;
9
8
 
10
9
  while (s[i]) {
11
10
  if (s[i] - '0' >= 10) {