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

回答編集履歴

2

追記

2019/01/22 06:21

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,9 @@
1
1
  `scanf("%s", str);`だと、**空白文字**までの読み取りになります。
2
2
  ですので、strには最初から`123`しか入力できていません。
3
3
 
4
- 一行まるまる取得したいならfgetsを使うか、書式指定子を`%[^\n]`にしてください。
4
+ 一行まるまる取得したいならfgetsを使うか、書式指定子を`%[^\n]`にしてください。
5
+
6
+ > なぜ、区切り文字を半角スペースにするとうまく分割することができなくなってしまうのでしょうか?
7
+
8
+ 半角スペースは空白文字の一つだから。
9
+ 参考: [C言語関数辞典 - C言語用語集 - 標準空白類文字](http://www.c-tipsref.com/words/s_white_space_character.html)

1

修正

2019/01/22 06:21

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,4 +1,4 @@
1
1
  `scanf("%s", str);`だと、**空白文字**までの読み取りになります。
2
2
  ですので、strには最初から`123`しか入力できていません。
3
3
 
4
- 一行まるまる取得したいならfgetsを使うか、書式指定子を`%[^\n]s`にしてください。
4
+ 一行まるまる取得したいならfgetsを使うか、書式指定子を`%[^\n]`にしてください。