C言語なら俺に聞け(入門篇) Part 23at TECH
C言語なら俺に聞け(入門篇) Part 23 - 暇つぶし2ch814:デフォルトの名無しさん
08/01/14 16:32:59
>>812
strtokは、与えた文字列(この場合s)の中を書き換えながら、そこを指すポインタを直接返す。
たとえば、"This is a pen" を与えると、strtokは最初
"This\0is a pen"
 ↑
ここを返す。文字列は\0で終わる決まりなので、"This"が得られる。2回目は
"This\0is\0a pen"
         ↑
ここを返す。"is"が得られる。3回目は
"This\0is\0a\0pen"
              ↑
            ここを返す。"a"が得られる。
こういう動作なので、帰ってきた文字列に直接strcatで追加すると、
後ろの文字列(=次に返される文字列)が書き換わってしまう。
つまり、そのprintLatinWordを実行すると、sの中は
"ThisTay\0a pen"
のように書き換わり、次にstrtokが返すはずだった "is" は "ay" になってしまう。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch