質問編集履歴

4

文法の修正

2020/10/06 11:43

投稿

herosportio
herosportio

スコア2

test CHANGED
@@ -1 +1 @@
1
- 1つの配列にforを使い文字列を追加する方法
1
+ strcatを使わず、1つの配列に文字列を追加する方法
test CHANGED
@@ -1,20 +1,16 @@
1
1
  #####やりたい事
2
2
 
3
- ・C言語でtrim関数を実装し、指示された数の文字列を出力するプログラムを作りたい。
4
-
5
- ・1つの配列に繰り返し数分文字列を追加していくというロジックを実装したかったが、可能なのでしょうか?
3
+ strcatを使わず1つの配列に繰り返し数分文字列を追加していくというロジックを実装したい。
6
4
 
7
5
  ex)
8
6
 
9
7
  表示回数:3
10
8
 
11
- 入力:[hellow! ](空白スペース有)
9
+ 入力:[hellow!]
12
10
 
13
- 理想出力結果:[hellow! hellow! hellow!](trim関数で後ろの空白を消す)
11
+ 出力結果:[hellow! hellow! hellow!]
14
12
 
15
- ※C言語にtrim関数が無いため引用し、自作しました。
16
13
 
17
- **自作という表現に関して”未実装の物を自分で実装する"という観点から自作という表現をしており、コードの著作権を主張する物ではありません。**
18
14
 
19
15
  #####プログラムコード
20
16
 
@@ -48,75 +44,23 @@
48
44
 
49
45
  }
50
46
 
51
- *trim関数は後述のサイトを引用しました。*\
52
47
 
53
- 「int Trim(char *s){
54
-
55
- int i;
56
-
57
- int count = 0;
58
-
59
-
60
-
61
- if (s == NULL){
62
-
63
- return -1;
64
-
65
- }
66
-
67
-
68
-
69
- i = strlen(s);
70
-
71
-
72
-
73
- while ( --i>= 0 && && s[i] == ' ' ) count++;
74
-
75
- s[i+1] = '\0';
76
-
77
-
78
-
79
- i = 0;
80
-
81
- while(s[i] != '\0' && s[i] == ' ') i++;
82
-
83
- strcpy(s, &s[i]);
84
-
85
-
86
-
87
- return i + count;
88
-
89
- }」
90
48
 
91
49
  ```
92
50
 
93
- 引用元:C言語関数辞典
51
+ ※スペースを代入するロジックは未実装です。
94
52
 
95
- URL:[http://www.c-tipsref.com/tips/string/o_trim.html](http://www.c-tipsref.com/tips/string/o_trim.html)
53
+ #####不明点
96
54
 
97
- ※標準入力より繰り返し回数を代入しま
55
+ ・配列に配列を代入するができない
98
56
 
99
- #####不明点・試した方法
100
-
101
- ・for文を用いて、配列に文字列を追加する方法
102
-
103
- -> str += buf; という構文を作成し代入ができるどうか試したが駄目だった。
57
+ ->str += bufは受け付けなかった。
104
58
 
105
59
 
106
60
 
107
- ・代替案
61
+ #####補足
108
62
 
109
- ->trim関数ではなく、単語間に空白を追加するロジックにする
110
-
111
-  単語を頭からソトし指定キーワード後空白を入れる用に施し所、Hellow!は"!"をトリガー
63
+ 実装したかった挙動は、"for文を回した分単語を表示、単語間にはスペを入れる"という物でstrcatを使う事で装でき
112
-
113
-  にして問題無く作動するが、appa等同じ文字が2回存在する時誤作動する。
114
-
115
-
116
-
117
- ・strcatで空白ごと入れる
118
-
119
- ->解決した。
120
64
 
121
65
  ```C
122
66
 
@@ -164,18 +108,10 @@
164
108
 
165
109
  ```
166
110
 
167
- #####補足
111
+ ######お詫び
168
112
 
169
- ・実装予定機能は実装できたがたい事が実施できていません(追記)
113
+ 私の誤解を招くような表現によ多数の方々に混乱を生じさせしまいました
170
114
 
171
- ・当初の予定ではtrim関数を用いて空白付き単語を宣言し、前後の空白だけ消すことで単語間の空白を実現しようとしていました。
172
-
173
- ・Googleで"C言語 配列 文字列 代入"等で検索をかけた結果、for文を用いて配列に単語を追加していくという事をしている物が見当たらなかった。
174
-
175
- ・当初のロジックは実装可能か不可かハッキリさせたく今回質問させて頂きました。
176
-
177
-
178
-
179
- ・ソース引用元記載た。ご指摘ありがとうござい
115
+ ご迷惑おかけて申ありませんでした
180
116
 
181
117
  よろしくお願いします。

3

文法の修正

2020/10/06 11:43

投稿

herosportio
herosportio

スコア2

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,9 @@
12
12
 
13
13
  理想出力結果:[hellow! hellow! hellow!](trim関数で後ろの空白を消す)
14
14
 
15
- ※C言語にtrim関数が無いため、自作しました。
15
+ ※C言語にtrim関数が無いため引用し、自作しました。
16
+
17
+ **自作という表現に関して”未実装の物を自分で実装する"という観点から自作という表現をしており、コードの著作権を主張する物ではありません。**
16
18
 
17
19
  #####プログラムコード
18
20
 
@@ -46,9 +48,9 @@
46
48
 
47
49
  }
48
50
 
51
+ *trim関数は後述のサイトを引用しました。*\
49
52
 
50
-
51
- int Trim(char *s){
53
+ int Trim(char *s){
52
54
 
53
55
  int i;
54
56
 
@@ -84,9 +86,13 @@
84
86
 
85
87
  return i + count;
86
88
 
87
- }
89
+ }
88
90
 
89
91
  ```
92
+
93
+ 引用元:C言語関数辞典
94
+
95
+ URL:[http://www.c-tipsref.com/tips/string/o_trim.html](http://www.c-tipsref.com/tips/string/o_trim.html)
90
96
 
91
97
  ※標準入力より繰り返し回数を代入します
92
98
 
@@ -162,7 +168,7 @@
162
168
 
163
169
  ・実装予定の機能は実装できたが、やりたい事が実施できていません。(追記)
164
170
 
165
- ・当初の予定では自作trim関数を用いて空白付き単語を宣言し、前後の空白だけ消すことで単語間の空白を実現しようとしていました。
171
+ ・当初の予定ではtrim関数を用いて空白付き単語を宣言し、前後の空白だけ消すことで単語間の空白を実現しようとしていました。
166
172
 
167
173
  ・Googleで"C言語 配列 文字列 代入"等で検索をかけた結果、for文を用いて配列に単語を追加していくという事をしている物が見当たらなかった。
168
174
 
@@ -170,4 +176,6 @@
170
176
 
171
177
 
172
178
 
179
+ ・ソース引用元を記載しました。ご指摘ありがとうございます。
180
+
173
181
  よろしくお願いします。

2

タイトル修正、問題点を補足に追加

2020/10/06 10:46

投稿

herosportio
herosportio

スコア2

test CHANGED
@@ -1 +1 @@
1
- for文を使い配列に文字列を繰り返し代入する方法
1
+ 1つの配列にfor文を使い文字列を追加する方法
test CHANGED
@@ -160,9 +160,13 @@
160
160
 
161
161
  #####補足
162
162
 
163
- 当初の予定では自作trim関数を用いて空白付単語を宣言し前後の空白だけ消すこと単語間の空白を実現しようとしていました
163
+ ・実装予定の機能は実装できたがやりたい事が実施ていません(追記)
164
164
 
165
+ ・当初の予定では自作trim関数を用いて空白付き単語を宣言し、前後の空白だけ消すことで単語間の空白を実現しようとしていました。
166
+
165
- Googleで"C言語 配列 文字列 代入"等で検索をかけた結果、for文を用いて配列に単語を追加していくという事をしている物が見当たらなかったので今回質問させて頂きました
167
+ Googleで"C言語 配列 文字列 代入"等で検索をかけた結果、for文を用いて配列に単語を追加していくという事をしている物が見当たらなかった。
168
+
169
+ ・当初のロジックは実装可能か不可かハッキリさせたく今回質問させて頂きました。
166
170
 
167
171
 
168
172
 

1

タイトルを問題点に合わせて修正しました

2020/10/06 09:01

投稿

herosportio
herosportio

スコア2

test CHANGED
@@ -1 +1 @@
1
- 配列に文字列を代入する方法
1
+ for文を使い配列に文字列を繰り返し代入する方法
test CHANGED
File without changes