スペースを含む文を取り出したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
かげろう

スペースを含む文を取り出したい

#1

投稿記事 by かげろう » 15年前

文字列の配列に、2つの英文が入っていて、
それを別々に取り出したいのです。
しかし英文ゆえに半角スペースがあり、sscanf関数ではうまくいきません。

例をあげます。
char str1[100] = "Thank you. You are welcome." ;
  char str2[100];
  char str3[100];

  sscanf(str1,"%s %s",str2,str3);
以上の結果、
str2が「Thank you.」
str3が「You're welcome.」
になってくれると嬉しいのですが、残念ながら
str2が「Thank」
str3が「you.」
になってしまうのです。

半角スペースがクセモノです。
どういった工夫を施せばよいでしょうか?

ちなみに、
char str1[100] = "Thank you._You are welcome." ;
  char str2[100];
  char str3[100];

  sscanf(str1,"%s_%s",str2,str3);
このようにアンダーバーをはさんでみましたが駄目でした。

mnkr

Re:スペースを含む文を取り出したい

#2

投稿記事 by mnkr » 15年前

split関数はどうでしょうか?
・・・と調べたらCには無いのでstrtok関数を使うと良いみたいです。

参考URLをぺたり
http://networkprogramming.blog18.fc2.co ... ry-89.html

かげろう

Re:スペースを含む文を取り出したい

#3

投稿記事 by かげろう » 15年前

こんな関数があったんですね…知りませんでした。
あとは自分で頑張ろうと思います。

ありがとうございました。

kazuoni

Re:スペースを含む文を取り出したい

#4

投稿記事 by kazuoni » 15年前

これは根本の解決ではない気がしますが・・・

英文を抜き出すという事ですよね?
どこで一つの英文とみなすかが分かりませんが、
ピリオド(.)で一文とするならば、
一文字づつ配列に出力していき、ピリオドが来たら終わりとする
とすれば、一応は題意を満たすと思うのですが・・・?

閉鎖

“C言語何でも質問掲示板” へ戻る