回答編集履歴

3

追記

2017/07/29 07:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -177,3 +177,33 @@
177
177
  このコード、yumetodoさんのコードの劣化版みたいになってますね...
178
178
 
179
179
  上げてから気付きました。
180
+
181
+
182
+
183
+ ---
184
+
185
+ 命名というか、変数名の書き方で、次のような分類があります。
186
+
187
+ |名前(例示)|別名|説明|
188
+
189
+ |:--|:--|:--|
190
+
191
+ |UpperCamelCase|PascalCase|単語の頭文字を大文字にして繋げる|
192
+
193
+ |lowerCamelCase|camelCase|単語の頭文字は大文字、でも最初だけ小文字|
194
+
195
+ |SNAKE_CASE|SNAIL_CASE|全部大文字、単語の繋ぎはアンダーバー|
196
+
197
+ |snake_case|snail_case|全部小文字、単語の繋ぎはアンダーバー|
198
+
199
+
200
+
201
+ 言語によって、どのケースを用いるかが大体決まっています。
202
+
203
+ 名前を見ただけで、『あ、これは関数だ』『変数だ』『マクロだ』と判断できるので重要です。
204
+
205
+
206
+
207
+ また、明白でない場合、略語はあまり用いない方が良いかもしれません。
208
+
209
+ コードが横に長くなりますが、Cは自由構文なので、適宜改行で調整できます。

2

追記

2017/07/29 07:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  system("PAUSE");
116
116
 
117
- return 0;
117
+ return EXIT_SUCCESS;
118
118
 
119
119
  }
120
120
 
@@ -173,3 +173,7 @@
173
173
  ```
174
174
 
175
175
 
176
+
177
+ このコード、yumetodoさんのコードの劣化版みたいになってますね...
178
+
179
+ 上げてから気付きました。

1

追記

2017/07/29 07:28

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -9,3 +9,167 @@
9
9
 
10
10
 
11
11
  ...あと、wardじゃなくてwordじゃないですかね。
12
+
13
+
14
+
15
+ ---
16
+
17
+ 私も書いてみました。せっかくなので載せます。
18
+
19
+ 純粋なC言語はしばらく触ってませんので、よくない点も多々あると思いますが...
20
+
21
+ ```C
22
+
23
+ #include <ctype.h>
24
+
25
+ #include <stdio.h>
26
+
27
+ #include <stdlib.h>
28
+
29
+ #include <string.h>
30
+
31
+
32
+
33
+ #define BUF_LEN 1000
34
+
35
+ #define WORD_LEN 20
36
+
37
+ #define WORD_TYPE 500
38
+
39
+
40
+
41
+ typedef struct NL_WORD {
42
+
43
+ char word[WORD_LEN+1];
44
+
45
+ int count = 0;
46
+
47
+ } NL_WORD;
48
+
49
+
50
+
51
+ char *read_token(char **, char *);
52
+
53
+ int find_name(NL_WORD *, int, char *);
54
+
55
+
56
+
57
+ int main(void) {
58
+
59
+ char buffer[BUF_LEN+1];
60
+
61
+ char *buf_ptr = buffer;
62
+
63
+
64
+
65
+ char input_word[WORD_LEN+1];
66
+
67
+
68
+
69
+ NL_WORD word_info[WORD_TYPE] = {};
70
+
71
+ int read_word_num = 0;
72
+
73
+
74
+
75
+ int i;
76
+
77
+
78
+
79
+ fgets(buffer, BUF_LEN, stdin);
80
+
81
+ while(read_token(&buf_ptr, input_word) != NULL) {
82
+
83
+ int index;
84
+
85
+ if( (index = find_name(word_info, read_word_num, input_word)) != -1 ) {
86
+
87
+ word_info[index].count++;
88
+
89
+ }
90
+
91
+ else {
92
+
93
+ strcpy(word_info[read_word_num].word, input_word);
94
+
95
+ word_info[read_word_num].count = 1;
96
+
97
+ read_word_num++;
98
+
99
+ }
100
+
101
+ }
102
+
103
+
104
+
105
+ for(i = 0; i < read_word_num; i++) {
106
+
107
+ printf("word: %s\n", word_info[i].word);
108
+
109
+ printf("num: %d\n", word_info[i].count);
110
+
111
+ }
112
+
113
+
114
+
115
+ system("PAUSE");
116
+
117
+ return 0;
118
+
119
+ }
120
+
121
+
122
+
123
+ char *read_token(char **buffer, char *dst) {
124
+
125
+ int start, end;
126
+
127
+ for(start = 0; isspace((*buffer)[start]); start++) {
128
+
129
+ if( (*buffer)[start] == '\0' ||
130
+
131
+ (*buffer)[start] == '\n' ) return NULL;
132
+
133
+ }
134
+
135
+ *buffer += start;
136
+
137
+
138
+
139
+ for(end = 0; !isspace((*buffer)[end]); end++) {
140
+
141
+ dst[end] = (*buffer)[end];
142
+
143
+ }
144
+
145
+ dst[end] = '\0';
146
+
147
+ *buffer += end;
148
+
149
+
150
+
151
+ return *buffer;
152
+
153
+ }
154
+
155
+
156
+
157
+ int find_name(NL_WORD *word_list, int word_list_len, char *input_word) {
158
+
159
+ int i;
160
+
161
+ for(i = 0; i < word_list_len; i++) {
162
+
163
+ if( !strcmp( word_list[i].word, input_word ) ) return i;
164
+
165
+ }
166
+
167
+ return -1;
168
+
169
+ }
170
+
171
+
172
+
173
+ ```
174
+
175
+