質問編集履歴

4

変更しました。

2021/05/12 13:01

投稿

Totette
Totette

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,4 @@
1
- 2つの文字列yに含まれる各文字が、文字列x中に合計で何回現れるかを返す関数char_aを作成しています。
2
-
3
- 例えば、char_a("abcb","ab")の場合、最初の引数'a'が1回、'b'が2回現れているため、3を返す。
4
-
5
- のようなプログラムを作成したいですが、(1)~(4)の部分がわかりません
1
+ のような関数を作成したいです。
6
-
7
-
8
-
9
- #include<stdio.h>
10
2
 
11
3
 
12
4
 
@@ -20,52 +12,18 @@
20
12
 
21
13
 
22
14
 
23
- for(xa = x; (1); (2)){ /*文字列xの最後まで*/
15
+ for( (1)){
24
16
 
25
- for(xb = y; (3); (4)){ /*文字列yの最後まで*/
26
-
27
- if(*xa == *xb) /*同じ文字が見つかった*/
17
+ if(xa == xb)
28
18
 
29
19
  {
30
20
 
31
- a++;
21
+ (2)
32
22
 
33
23
  }
34
24
 
35
- }
36
-
37
25
  }
38
-
39
-
40
26
 
41
27
  return a;
42
28
 
43
29
  }
44
-
45
-
46
-
47
- int main(void)
48
-
49
- {
50
-
51
- int a = char_a("ababc","ac");
52
-
53
- printf("a = %d\n",a);
54
-
55
- return 0;
56
-
57
- }
58
-
59
-
60
-
61
- ### 補足情報(FW/ツールのバージョンなど)
62
-
63
-
64
-
65
- 他にも穴埋めの箇所はありましたが、どうしてもこの部分だけがわかりません。
66
-
67
- 1文字ずつずらすために、(2)と(4)にはそれぞれxa++,xb++が入ると思うのですが、
68
-
69
- (1)と(3)には何が当てはまるか分かりません。(おそらく、'\0'まで達したら抜けるような文だと考えます。)
70
-
71
- ご教授お願い致します。

3

(1)~(4)の内容について補足しました。

2021/05/12 13:01

投稿

Totette
Totette

スコア1

test CHANGED
File without changes
test CHANGED
@@ -64,4 +64,8 @@
64
64
 
65
65
  他にも穴埋めの箇所はありましたが、どうしてもこの部分だけがわかりません。
66
66
 
67
+ 1文字ずつずらすために、(2)と(4)にはそれぞれxa++,xb++が入ると思うのですが、
68
+
69
+ (1)と(3)には何が当てはまるか分かりません。(おそらく、'\0'まで達したら抜けるような文だと考えます。)
70
+
67
71
  ご教授お願い致します。

2

コメント追加しました.

2021/05/12 07:19

投稿

Totette
Totette

スコア1

test CHANGED
File without changes
test CHANGED
@@ -20,11 +20,11 @@
20
20
 
21
21
 
22
22
 
23
- for(xa = x; (1); (2)){
23
+ for(xa = x; (1); (2)){ /*文字列xの最後まで*/
24
24
 
25
- for(xb = y; (3); (4)){
25
+ for(xb = y; (3); (4)){ /*文字列yの最後まで*/
26
26
 
27
- if(*xa == *xb)
27
+ if(*xa == *xb) /*同じ文字が見つかった*/
28
28
 
29
29
  {
30
30
 

1

関数char_aに変えました.countの部分をaに変えました。

2021/05/12 04:35

投稿

Totette
Totette

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
- 2つの文字列yに含まれる各文字が、文字列x中に合計で何回現れるかを返す関数charcountを作成しています。
1
+ 2つの文字列yに含まれる各文字が、文字列x中に合計で何回現れるかを返す関数char_aを作成しています。
2
2
 
3
- 例えば、charcount("abcb","ab")の場合、最初の引数'a'が1回、'b'が2回現れているため、3を返す。
3
+ 例えば、char_a("abcb","ab")の場合、最初の引数'a'が1回、'b'が2回現れているため、3を返す。
4
4
 
5
5
  以上のようなプログラムを作成したいのですが、(1)~(4)の部分がわかりません。
6
6
 
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- int charcount(char *x, char *y)
13
+ int char_a(char *x, char *y)
14
14
 
15
15
  {
16
16
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  for(xb = y; (3); (4)){
26
26
 
27
- if(xa == xb)
27
+ if(*xa == *xb)
28
28
 
29
29
  {
30
30
 
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- return count;
41
+ return a;
42
42
 
43
43
  }
44
44
 
@@ -48,7 +48,9 @@
48
48
 
49
49
  {
50
50
 
51
- charcount("ababc","ac");
51
+ int a = char_a("ababc","ac");
52
+
53
+ printf("a = %d\n",a);
52
54
 
53
55
  return 0;
54
56