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

質問編集履歴

4

2020/10/24 11:30

投稿

tatama
tatama

スコア0

title CHANGED
File without changes
body CHANGED
@@ -29,9 +29,9 @@
29
29
 
30
30
  strcpy(str2[n]," ");
31
31
  strcpy(newstr,str2[n]);
32
+ new str[n+1] = ‘.’;
32
33
  printf("%s\n", newstr); /* 新しい文字列全体を表示 */
33
34
  }
34
- printf(" ");
35
35
  /* ここで、newstrの文字数を表示 */
36
36
  printf("Total: %d characters\n",strlen(newstr));
37
37
  return 0;

3

2020/10/24 11:30

投稿

tatama
tatama

スコア0

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  C言語で単語を4回入力し、スペースを入れてそれを繋げて最後にピリオドを表示させたいです あと、最後に文字数の合計を表示させたいです
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
-
5
+ コンパイルはできたのですが、入力しても何も表示されず、文字数も1になってしまいました
6
6
  ### 該当のソースコード
7
7
 
8
8
  #include <stdio.h>
@@ -15,7 +15,8 @@
15
15
  char str2[NUM][20]; /* 入力用の文字配列 */
16
16
  char newstr[80]; /* 出力用の文字配列 */
17
17
  int i;
18
+ /* ここにその他の変数宣言 */
18
- int count = 0;
19
+ int n;
19
20
  printf( "Input %d words: \n", NUM );
20
21
 
21
22
  for( i = 0; i < NUM; i++ ){
@@ -23,15 +24,22 @@
23
24
  }
24
25
 
25
26
  /* 入力済みのstr2をもとに、newstrを作成する処理を書く */
26
- newstr = str2;
27
+ /* 単語間にスペースを入れる事と、最後はピリオドで終わることに注意 */
27
- printf("%s\n", newstr);
28
+ for(n = 0;n < i;n++){
28
29
 
29
-
30
+ strcpy(str2[n]," ");
31
+ strcpy(newstr,str2[n]);
32
+ printf("%s\n", newstr); /* 新しい文字列全体を表示 */
33
+ }
34
+ printf(" ");
35
+ /* ここで、newstrの文字数を表示 */
30
- printf("Total: %d characters\n",count+1);
36
+ printf("Total: %d characters\n",strlen(newstr));
31
37
  return 0;
32
38
  }
33
39
 
34
40
 
41
+
42
+
35
43
  ### 試したこと
36
44
 
37
45
 

2

2020/10/24 11:23

投稿

tatama
tatama

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,19 +1,8 @@
1
1
  ### 前提・実現したいこと
2
- C言語で文章を入力し、改行空白に変え最後にピリオドを表示させたいです あと、最後に文字数の合計を表示させたいです
2
+ C言語で単語4回入力し、スペース入れそれを繋げて最後にピリオドを表示させたいです あと、最後に文字数の合計を表示させたいです
3
3
 
4
4
  ### 発生している問題・エラーメッセージ
5
5
 
6
- prog03.c: In function ‘main’:
7
- prog03.c:17:16: warning: comparison between pointer and integer
8
- 17 | if(str2[i] == '\n')str2[i] =' ';
9
- | ^~
10
- prog03.c:17:32: error: assignment to expression with array type
11
- 17 | if(str2[i] == '\n')str2[i] =' ';
12
- | ^
13
- prog03.c:23:10: error: assignment to expression with array type
14
- 23 | newstr = str2;
15
- | ^
16
-
17
6
  ### 該当のソースコード
18
7
 
19
8
  #include <stdio.h>
@@ -31,8 +20,6 @@
31
20
 
32
21
  for( i = 0; i < NUM; i++ ){
33
22
  scanf("%s", str2[i]);
34
- if(str2[i] == '\n')str2[i] =' ';
35
- count++;
36
23
  }
37
24
 
38
25
  /* 入力済みのstr2をもとに、newstrを作成する処理を書く */

1

2020/10/24 10:41

投稿

tatama
tatama

スコア0

title CHANGED
@@ -1,1 +1,1 @@
1
- 改行を空白に置き換える方法が分かりません
1
+ 入力した単語に空白を入れて文章を作る方法が分かりません
body CHANGED
File without changes