
C言語で文字列を検索処理があるものですが、
以下のようなことがうまくできず困っています。
1.検索対象はファイルから読み込んだメモリ内の文字列。
2.対象の文字列は大文字小文字に関わらずに抽出する。
例えば、「abc」を検索するとして、文字列内が
aaaaBccccdefgだとすると…
aaa「aBc」cccdefg
かっこ内を検索します。
strstrだと、完全な一致しかヒットしないので…
長い文字列が対象になることもあるので、
すべての組み合わせを見るのも性能的に難しいです。
何か方法ご存知の方いらっしゃいましたら、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
簡単なのは、
メモリ内の文字列をいったんすべて小文字(または大文字)にしてから
検索する方法だと思います。
非標準ですが、strcasestrという大文字小文字を無視するstrstrもあります。
(検索すればstrcasestrのソースコードが見つかるかも?)
この回答への補足
ありがとうございます。
下記にも補足しましたが、
メモリ内の文字列は他の関数も使うので、
変換できないんです。
私の担当部分は該当箇所を検索し、置換処理をするんです。
strcasestrは探して、相談してみます。
No.3
- 回答日時:
メモリ内の文字列を、自分だけが使うワークエリアにコピーしてから
検索用に使えばよいのではないでしょうか。
自分だけが使うエリアですから、すべて大文字にしたり
すべて小文字にしたりするのは自由にできるはずです。
そうですね。
また、漏れてましたが、検索後に置換を行うので、
アドレスがわかった方が便利なものですから、
2番の方の意見を参考にしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
VBの「As String * 128」とは?
-
MS SQLServer のSQLで文字列の...
-
エクセルでセル内の文字列の最...
-
エクセルで文字列の最大値を抽...
-
StringGridで選択した箇所の文...
-
エクセル 数値データを桁をそ...
-
同一セル内に関数と文字列を同...
-
MS Wordのテキスト ボックス フ...
-
Msgboxの×が押されたとき
-
Excel COUNTIF の仕様について
-
アクセスでのインポート時の改...
-
textboxユーザーコントロールの...
-
VBA2005 16進を2桁で表示したい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
ORCLEでの小数の表示方法の変更...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
SQL の Update文(?) と ...
-
VBの「As String * 128」とは?
-
aaa.bbb.ccc という、「ドット...
-
同一セル内に関数と文字列を同...
おすすめ情報