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

回答編集履歴

4

ソースの変更

2018/06/24 09:13

投稿

退会済みユーザー
answer CHANGED
@@ -13,7 +13,7 @@
13
13
  #include <stdio.h>
14
14
  #include <string.h>
15
15
 
16
- #define BUFSIZE 1000
16
+ #define BUFSIZE 1024
17
17
 
18
18
  int main(void)
19
19
  {

3

ソースの変更

2018/06/24 09:13

投稿

退会済みユーザー
answer CHANGED
@@ -13,41 +13,39 @@
13
13
  #include <stdio.h>
14
14
  #include <string.h>
15
15
 
16
+ #define BUFSIZE 1000
17
+
16
18
  int main(void)
17
19
  {
18
20
  char text[3][10] = {"10a","5b","80c"};
19
- char *buf;
21
+ char buf[BUFSIZE];
20
22
  int i;
21
23
  int type = -1;
22
24
 
23
25
  for(i = 0; i < 3; i++){
24
26
  printf("%sを入力 -> 処理%d\n",text[i],i + 1);
25
27
  }
26
-
27
- if (fgets(buf, sizeof(buf), stdin) == NULL) {
28
+ fgets(buf,sizeof(buf),stdin);
29
+ buf[strlen(buf) - 1] = '\0';
30
+ for(i = 0; i < 3; i++){
28
- printf("エラーです。");
31
+ if(strcmp(buf,text[i]) == 0){
32
+ type = i + 1;
29
- }
33
+ }
30
- else{
31
- for(i = 0; i < 3; i++){
32
- if(strcmp(buf,text[i]) == 0){
33
- type = i + 1;
34
- }
34
+ }
35
+ switch(type){
36
+ case 1:
37
+ printf("処理1\n");
38
+ break;
39
+ case 2:
40
+ printf("処理2\n");
41
+ break;
42
+ case 3:
43
+ printf("処理3\n");
44
+ break;
45
+ default:
46
+ printf("何もしない\n");
47
+ break;
35
- }
48
+ }
36
- switch(type){
37
- case 1:
38
- printf("処理1\n");
39
- break;
40
- case 2:
41
- printf("処理2\n");
42
- break;
43
- case 3:
44
- printf("処理3\n");
45
- break;
46
- default:
47
- printf("何もしない\n");
48
- break;
49
- }
50
- }
51
49
  return 0;
52
50
  }
53
51
  ```

2

ソースの変更

2018/06/24 08:59

投稿

退会済みユーザー
answer CHANGED
@@ -13,42 +13,41 @@
13
13
  #include <stdio.h>
14
14
  #include <string.h>
15
15
 
16
- #define BUFSIZE 256
17
-
18
16
  int main(void)
19
17
  {
20
- char text[3][10] = {"10a","5b","80c"};
18
+ char text[3][10] = {"10a","5b","80c"};
21
- char buf[BUFSIZE];
19
+ char *buf;
22
- int i;
20
+ int i;
23
- int type = -1;
21
+ int type = -1;
24
-
22
+
25
- for(i = 0; i < 3; i++){
23
+ for(i = 0; i < 3; i++){
26
- printf("%sを入力 -> 処理%d\n",text[i],i + 1);
24
+ printf("%sを入力 -> 処理%d\n",text[i],i + 1);
25
+ }
26
+
27
+ if (fgets(buf, sizeof(buf), stdin) == NULL) {
28
+ printf("エラーです。");
27
29
  }
28
-
29
- fgets(buf,sizeof(buf),stdin);
30
+ else{
30
- buf[strlen(buf) - 1] = '\0'; //最後の改行を削除
31
-
32
- for(i = 0; i < 3; i++){
31
+ for(i = 0; i < 3; i++){
33
- if(strcmp(buf,text[i]) == 0){
32
+ if(strcmp(buf,text[i]) == 0){
34
- type = i + 1;
33
+ type = i + 1;
35
- }
34
+ }
35
+ }
36
+ switch(type){
37
+ case 1:
38
+ printf("処理1\n");
39
+ break;
40
+ case 2:
41
+ printf("処理2\n");
42
+ break;
43
+ case 3:
44
+ printf("処理3\n");
45
+ break;
46
+ default:
47
+ printf("何もしない\n");
48
+ break;
49
+ }
36
50
  }
37
-
38
- switch(type){
39
- case 1:
40
- printf("処理1\n");
41
- break;
42
- case 2:
43
- printf("処理2\n");
44
- break;
45
- case 3:
46
- printf("処理3\n");
47
- break;
48
- default:
49
- printf("何もしない\n");
50
- break;
51
- }
52
- return 0;
51
+ return 0;
53
52
  }
54
53
  ```

1

ソースコードの訂正

2018/06/23 10:09

投稿

退会済みユーザー
answer CHANGED
@@ -21,6 +21,11 @@
21
21
  char buf[BUFSIZE];
22
22
  int i;
23
23
  int type = -1;
24
+
25
+ for(i = 0; i < 3; i++){
26
+ printf("%sを入力 -> 処理%d\n",text[i],i + 1);
27
+ }
28
+
24
29
  fgets(buf,sizeof(buf),stdin);
25
30
  buf[strlen(buf) - 1] = '\0'; //最後の改行を削除
26
31