問題タブ [strstr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 一致する strstr とオカレンス
でテストする可能性のあるオカレンスがいくつかありstrstr
ます。
そして、見つかった発生に基づいて、私がする必要があります
多くのifステートメントを使用せずにこれを行う良い方法は何でしょうか?
c - strstr の最適化バージョン (検索の長さは一定)
私の C プログラムには、多くの strstr 関数呼び出しがありました。標準ライブラリ strstr はすでに高速ですが、私の場合、検索文字列の長さは常に 5 文字です。速度を上げるために、特別なバージョンに置き換えました。
ct が cs で発生するかどうかを知るには十分であるため、この関数は整数を返します。この特殊なケースでは、私の関数は標準の strstr よりもシンプルで高速ですが、適用できるパフォーマンスの改善があるかどうかを知りたいです。小さな改善でも大歓迎です。
概要:
- cs の長さは >=10 ですが、それ以外の場合は変わる可能性があります。長さは以前にわかっています(私の機能では使用されていません)。cs の長さは通常 100 から 200 です。
- ct の長さは 5
- 文字列の内容は何でもかまいません
編集:すべての回答とコメントに感謝します。アイデアを研究してテストし、何が最も効果的かを確認する必要があります。サフィックス trie に関する MAK のアイデアから始めます。
c# - C#で同等のstrstr()
私は2つ持っていて、最初の2番目のオカレンス(またはその中の範囲)byte[]
を見つけたいと思っています。byte[]
byte[]
効率を上げるために文字列を使用したくありません(最初の文字列byte[]
をaに変換string
すると非効率になります)。
基本的に私はそれstrstr()
がCで何をするかだと信じています。
それを行うための最良の方法は何ですか(効率的で使いやすいように)?
これはどのように見えるべきかです:
ありがとう!
アップデート:
単純な検索よりも効率的なソリューションが必要です。これは、バッファの比較がより効率的であるという事実を使用する必要があることを意味します-memcmp()は、バイトを反復処理するよりも効率的です。
また、次のようなシナリオを最適化するアルゴリズムがあることも知っています。
- ビッグアレイ: "12312351231234"
- 小さな配列: "1231234"
- ナイーブアルゴリズム: 7は「1231235」が「1231234」と異なることを見つけるために比較し、2は次の「1」を見つけるために比較し、4は「1235」が「1231」と異なることを見つけるために比較し、3は次の「 1 "、7は一致を見つけるために比較します。合計7+2 + 4 + 3 + 7=23が比較されます。
- スマートアルゴリズム: 7は、「1231235」が「1231234」とは異なることを確認するために比較し、(比較せずに)次の「1」に直接ジャンプします。4は、「1235」が「1231」とは異なることを確認するために比較し、 「5」、7は一致を見つけるために比較します。合計7+4 + 7=18が比較されます。
c - C言語のポインターを介したstrstr
これは私が作った strstr の標準コードですか????
php - PHP:文字列内の部分文字列の始まりと終わりを見つける方法は?
これは、1つのmysqlテーブルフィールドの内容です。
さて、備考を読んで変数に格納したいと思います。備考(1)、備考(2)等を修正しました。「これはremark1です」などはフォーム入力フィールドから取得されるため、柔軟性があります。
基本的に必要なのは、「Remarks(1):」と「--------」の間のすべてを読み取り、変数に保存することです。
ご協力いただきありがとうございます。
c - C で部分文字列を取得する
次の形式の文字列があります: "R: 625.5m E:-32768m"
625.5 を引き出す最も効率的な方法は何ですか?
php - C(\ 0で終了する)文字列をPHP文字列に変換する
PHPは、私が定期的に使用する言語の1つですが、通常、PHPを再び使用し始めると、クモの巣をほこりで払う必要があります。今週、CコードをPHPに移植するときにも同じことが言えます。これは多くのAES暗号化とSHA256ハッシュを使用します-これまでのところすべて正常に機能しています。ただし、復号化された文字列は「C」形式で出力されます。つまり、ゼロバイトの後に「ガベージ」パディングバイトが続きます。
私は現在、これらのCスタイルの文字列を次のようにPHP形式に「トリミング」しています。
時間がかかり、代わりに1行の関数呼び出しがあるはずですが、見つかりませんか?
注:この場合、「ハッシュソルト」という名前は、元の文字列の長さを知っている可能性があることを意味しますが、一般的な場合は不明です。substr()
明らかに、長さが事前にわかっている場合を使用して、1行のソリューションを利用できます。
c - Cでテキストファイルを処理するための異常な動作
DNSサーバーの動作をシミュレートしようとしています。DNSサーバーには、次のような名前のDBがありhosts.txt
ますmachine_names/IP_addresses
。
これが私のコードです:
私のコードは、マシンの値である標準入力から読み取り、サーバー上のそのマシンに割り当てられているIPアドレスを示します。問題は、プログラムが正常な動作ではないことです。コードを期待される出力に変更する方法がわかりません。
質問がかなりばかげている場合は申し訳ありませんが、私はこの言語に不慣れです..あなたの助けに感謝し、私の英語を許します
php - stristrを通過するものに別の変数が必要ですが、これら3つの異なるもの以外のものを含めることはできません
私はこの次のコードを持っています:-
$ ad ['country']に米国、英国、またはカナダがある場合は合格するか、上記以外の値がある場合は残ります。
例:-Ad1は:(米国;英国)>次に$adsptc4として通過する必要がありますAd2は:(米国;イタリア)>次に失敗するはずです。
あなたが何かを理解していなかったら私に知らせてください。
うまくいきます。欠点があるかどうか教えてください。
c - null を含むバッファで部分文字列を検索するにはどうすればよいですか?
C を使用して、null を含む可能性のあるバッファー内の部分文字列を見つける必要があります。
部分文字列の開始、または null を strstr() に似たものとして返す必要があります。
あなたが知っている既存の実装はありますか?
アップデート
私はグーグルのコードサーチで memove の実装を見つけました。