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

回答編集履歴

1

繰り返し入力対応

2018/07/19 23:53

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -13,14 +13,14 @@
13
13
  ```c
14
14
  mojiretu = (char *)malloc(5);
15
15
  work = (char *)malloc(100);
16
+ while(1){
16
- printf("文字列を入力:");
17
+ printf("文字列を入力:");
17
- scanf_s("%s", work, 100);
18
+ scanf_s("%s", work, 100);
18
- if(strlen(work) > 5){
19
+ if(strlen(work) < 5){
20
+ break;
21
+ }
19
22
  printf("領域を超えます。\n");
20
- break;
21
23
  }
22
24
  strcpy(mojiretu, work);
23
25
  ```
24
- 厳密には文字列の終端にはNULL文字が必要なので、mallocで5バイト確保していても4文字しか格納できません。
26
+ 厳密には文字列の終端にはNULL文字が必要なので、mallocで5バイト確保していても4文字しか格納できません。
25
- 上記コードはそこらへんは敢えて無視してますのでご了承ください。
26
- (本来ならif文は5ではなく4の方が正しいなど)