問題タブ [strcmp]

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.

0 投票する
9 に答える
16164 参照

c - strcmpはリテラルと同等(そして安全)であると私は正しいですか?

オーバーフローが原因で問題が発生する可能性があることは誰もが知っています。これがstrn*が存在する理由です。ほとんどの場合、それらは理にかなっています。ただし、次のようにstrncmpを使用してコマンドラインパラメーターを比較するコードを見てきました。

さて、これは不要で、おそらく危険でさえあると思いました(パラメータが長いと、リテラル内の文字を誤算しやすくなります)。

strncmpはnullで停止し、コードはすでにargv[i]がnullで終了していると想定しています。文字列リテラルはnullで終了することが保証されているので、strcmpを使用してみませんか?

何かが足りないのかもしれませんが、これを何度か見たことがあり、今回は質問するほど興味をそそられました。

0 投票する
7 に答える
54211 参照

c - 入力が等しいときに strcmp() が 0 を返すのはなぜですか?

次のように C 文字列比較関数を呼び出すと、次のようになります。

これは、文字列が等しくないことを意味する 0 を返します。

Cの実装がこれを行うように見える理由を誰か教えてもらえますか? 等しい場合、ゼロ以外の値を返すと思います。この動作が見られる理由に興味があります。

0 投票する
7 に答える
1753 参照

c - strcmp を使用した比較

gcc C99 でコンパイルする

文字列比較を使用して 2 つの文字列を比較しようとしています。しかし、strcmp 行でスタック ダンプを取得しているようです。

**属性にはこれらが含まれるため、フレームタイプを探しています。

比較するのはこれが正しい方法ですか?

ご提案いただきありがとうございます。

0 投票する
3 に答える
922 参照

c++ - 文字列比較が Visual C++ 2005 で機能しない

レジストリから gring を取得すると、メッセージ ボックスに配置すると正しく表示されます。::MessageBoxW(0, (LPCWSTR)achValue, _T("見つかった"), MB_YESNO);

値は、DWORD である archValue に格納されます。私がやりたいのは、それを次の文字列「2.0.7045.0」と比較することですが、strcmp は機能しません。

これを行う方法についてのアイデアは大歓迎です。C ++ではかなりゴミで、dllのように簡単にデバッグできません。

とても有難い

トニー

0 投票する
5 に答える
33511 参照

c - strcmpが機能しない

これはまったくの初心者の質問かもしれませんが (私は長い間 C に触れていません)、なぜこれが機能しないのか誰か教えてもらえますか?

「exit」を入力してもifに入らないのですが、「buffer」の長さと関係がありますか?

助言がありますか?

0 投票する
2 に答える
1297 参照

php - MySQL の latin1_general_ci 照合のようなものを PHP で実現するにはどうすればよいですか?

多くの異なるヨーロッパ言語の特殊なアクセント付き文字を含むことが多い医学用語をソートするための文字列比較関数を作成しています.MySQLのlatin1_general_ci.

まず、スペース、引用符、ハイフン、括弧などを削除するために、文字列に対していくつかの基本的な変更を行っています。問題は、文字列をstrcoll()デフォルトのロケールを使用して渡すときに発生します。たとえば、考慮するほど賢くないためです。 、辞書編集的に通常の e と同等のアクセント付き e。

ドイツ語やフランス語などのロケールを使用することには慎重です。考慮する必要があるすべての特殊文字が含まれていない可能性があるからです。latin1_general_ci照合に似たものを私に与えるロケールはありますか? それとも別の解決策がありますか?

私の素朴な解決策は、大きな連想配列を作成して、アクセント付きの文字を通常の文字に対応するものにマップし、これをstr_replace()で使用することですが、それは遅くて退屈に聞こえます (そしてエラーが発生しやすくなります)。可能であれば、言語に組み込まれているものを使用したいと思います。

また、現在のロケールの照合を尊重しますか、それともこれを行うだけstrcmp()ですか?strcasecmp()strcoll()

0 投票する
7 に答える
5243 参照

c - C での文字列の比較 - strcmp

Cで文字列を比較するのに問題があります(私はかなり慣れていません)。このサーバー アプリケーションには、クライアントからのデータの受け入れを待機しているソケットがあります。プログラムのこの特定の部分では、クライアントから受信したデータに基づいて MySQL クエリを実行できるようにしたいと考えています。簡単な登録手順を開始するために、受信したデータに「newuser」の値が含まれていることを知りたいです。strcmp は正の 1 の値を返していますが、値は等しいはずなので、0 を取得する必要があると思います。

ソースコード:

出力:

着信バッファを正しく処理していないか、誤ってバッファをコピーしているように感じます。

0 投票する
6 に答える
129629 参照

javascript - JavaScript strcmp() はありますか?

誰かが私のためにこれを確認できますか? JavaScript には strcmp() のバージョンがないため、次のように記述する必要があります。

0 投票する
5 に答える
2925 参照

c - 文字列比較における 16 進リテラルの問題

最初の 4 バイトが「\x4e\x45\x53\x1a」または NES\x1a である NES ROM ファイルを読み込んでいます。私の実際のコードでは、指定されたファイルは任意である可能性があるため、このヘッダーがここにあることを確認したいと思います。ただし、次のコードが示すように、いくつかの問題が発生しています。

戻り値:

疑問符は \x1a です。

私は C に慣れていないので、\x1a が文字列の最後にあり、B行がそうあるべきであることを示しているようです。

0 投票する
4 に答える
3194 参照

c - C-strtokおよびstrcmp

strtokとstrcmpの使用に少し問題があります。

次のヘッダーを付けると

私はこの出力を取得します:

ご覧のとおり、strtok()は文字列を適切に解析しますが、値c1とc2は意味をなさないようです(c1は0を返す必要がありますが、代わりに1を返します)。

何が起きてる?