キーボードから2つの整数を半角スペース区切りで受け取り、区切られた2つの整数を表示するプログラムを作ろうとしました。
C
1#include <stdio.h> 2#include <string.h> 3 4int main(void) 5{ 6 char str[1000], *token1, *token2; 7 scanf("%s", str); 8 token1 = strtok(str, " "); 9 token2 = strtok(NULL, " "); 10 printf("token1の値は%s , token2の値は%s\n", token1, token2); 11 return 0; 12}
ここで、プログラムを実行して
123 456
という入力をすると、以下のような出力結果になってしまいます。
token1の値は123 , token2の値は(null)
先ほどのコードにてtoken1, token2の第二引数を "." や "y"などどして区切り文字を変えて、キーボードから「123.456」や「123y456」のように入力してみると、以下のように想定した出力結果になります。
token1の値は123 , token2の値は456
なぜ、区切り文字を半角スペースにするとうまく分割することができなくなってしまうのでしょうか?
また、どうすれば半角スペースを区切り文字として分割した整数を表示させることができるでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/22 06:25