strchr() ではまった話 標準Cライブラリに strchr() という関数があります。文字列の先頭から指定した文字を探すという単純な関数なのですが、先日、意外な仕様を知りました。 以下のコードを見てみます。 if (strchr("+-*/", c)) { // c は四則演算の記号かな? ... } この if 文は c が + - * / のいずれかの場合に条件が真となり、ブロック中が実行されます。…と、思いきや、実は条件が真になるケースがもうひとつありました。c が '\0' の場合です。 ま... > このページを見る
最終更新時間:
2007年12月22日23時23分
みんなのブックマーク 人気(0) 新着
- これ昔ハマったなぁ...
- [!GTD::資料(いつか読む)]strchr() ではまった話 - bkブログ
- '\0'は番兵さん。番兵さんも要員の一人だと覚えていました。
- strchr("+-*/") は "+-*/\0"がヒットする。 つまり\0も。
- \0も真
- 「'\0'は文字列には全く含まれない」「常に"末尾"に含まれる」という二つの考え方があるが、前者だとstrchrは意味ねぇが、後者だと文字列の末尾位置を得るという使い方ができる。それを考えればstrchrの仕様は必然
- 論理的にはあってるなぁ。罠罠。
- >>strchr() が文字列終端のナル文字を含めて探索するということを今頃になって知りました
- SUSv3検索プラグイン超便利だけど、googleツールバーいれるとfirefoxのアドバンストサーチ使えなくなるんだよね。
- strchr()は文字列終端のナル文字を含めて探索する
- strchr() をそういう使い方をしている人、はじめてみた。そういう用途で使う関数、確かにあると便利だけど、標準ライブラリにはないですね。
- この使い方がそもそもよくないと思う









