C 文字列操作 新しいページはコチラ
提供: yonewiki
(→文字列の検索と置換) |
(→文字列の検索と置換) |
||
4,073行: | 4,073行: | ||
部分一致の処理は難しいので、typedef関数とクラスと構造体のコンストラクタとテンプレートクラスとクラスのメンバ関数およびクラスのメンバ変数、更には標準クラスであるvectorクラスとpair構造体について理解してから戻ってくるとよいかもしれません。 | 部分一致の処理は難しいので、typedef関数とクラスと構造体のコンストラクタとテンプレートクラスとクラスのメンバ関数およびクラスのメンバ変数、更には標準クラスであるvectorクラスとpair構造体について理解してから戻ってくるとよいかもしれません。 | ||
− | + | ICUを使わない文字列検索としてはstrchrのような***chr系の一文字検索関数があります。見つかった位置のByte数を返してくれます。ICUの正規表現に比べると機能性は低いです。一文字を引数にするとき符号なし整数型にしなければいけないあたりは、初期値を与えての検索は楽ですが、実際に一文字の文字列から検索しようとすると大変なのかもしれません。実際に数えてみないと、一文字あたりが、1バイトなのか2バイトなのかわからないし…。こういう一文字検索だけを行う関数って使う人いるんだろか?って思う。やっぱstrstr系使うよね。 | |
<syntaxhighlight lang="cpp" line start="1"> | <syntaxhighlight lang="cpp" line start="1"> | ||
4,204行: | 4,204行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | 出力結果 | ||
+ | <syntaxhighlight lang="text"> | ||
+ | 文字列検索: | ||
+ | |||
+ | 日本語の検索用文字列です。The quick brown dog jumps over the lazy fox | ||
+ | 1 2 3 4 5 6 | ||
+ | 123456789012345678901234567890123456789012345678901234567890123456789 | ||
+ | |||
+ | ★マルチバイト対応検索 | ||
+ | f1 | ||
+ | 97 | ||
+ | MultiByteString検索文字 SigngleWord:97f1(列) | ||
+ | incriment:2[Byte] | ||
+ | |||
+ | 検索結果: 最初の 97f1(列) が見つかった位置は 19[Byte]目 | ||
+ | |||
+ | |||
+ | ★シングルバイト文字の初期値による検索 | ||
+ | 検索文字: r | ||
+ | 検索結果: 最初の r が見つかった位置は 38[Byte]目 | ||
+ | 検索結果: 最後に r が見つかった位置は 56[Byte]目 | ||
+ | </syntaxhighlight> | ||
+ | 文字列全体の一致による検索の関数はstrstr関数で、***str系の関数です。他にも文字セット検索なるものはあります。 | ||
=='''文字列ファイルパス操作'''== | =='''文字列ファイルパス操作'''== |