問題タブ [strncmp]
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 - IP 番号がテキスト ファイルに出現する回数を数える - C プログラム
10 ヒットのログ ファイルがあります。たとえば、1 行は次のとおりです。
各行の形式は同じです。つまり、IP アドレスは常に先頭にあります。
現在、fopen と fgets を使用してファイルを読み込んでいますが、ファイル内にある一意の IP の数と、IP が「ヒット」した回数をカウントしたいと考えています。これをどのように試みるかわかりません..これを行う方法に関するヒントはありますか?
c - TFTP転送後のMD5比較
大事なファイルの転送にtftpコマンドを使っているので、転送を有効にするためにmd5と比較してみたいと思います。注:以下の例では、ファイルはすでに転送されています
出力:
入力ファイルには次が含まれます。
X は char および D の 10 進数値です。
ret が 0 に等しくないのはなぜですか? さらに、34がどこから来たのかわかりません
編集: コードは更新されました。問題は md5_length 定義から発生しました。long 型は size_t に交換されました
c++ - 'char' から 'const char' への C++ の無効な変換
二次元配列の比較で困っています。ユーザーにユーザー名とパスワードを要求し、入力を事前定義されたユーザー名のリストと比較する疑似ログイン システムを作成する必要があります。
この関数では、定義済みのユーザー名は で表され、*s
ユーザー入力は*s1
です。コンパイルしようとすると、この厄介なトラブルメーカーが表示されます。
68 D:\Personal\Dev-Cpp\projects\loginSysTest\main.cpp
char' to
constからの無効な変換
strncmp
ステートメントの機能についてif
。
これはコードです:
前もって感謝します。
c - strncmp(NULL, "foo", 0) は適切に定義されていますか?
strncmp
3 番目のパラメーターがゼロの場合、NULL ポインターをパラメーターとして配置しても安全ですか? つまり、次のような呼び出しです。
memcmp - strncmp と memcmp の使用
する
と同じことをする
buf
およびbuf2
char* 配列または類似のものです。
これを別の質問に追加するつもりでしたが、おそらく別々に投稿する方がよいと判断しました. おそらく、答えは些細な「はい」であるか、そうでない場合、違いは何ですか?
(これらの関数はオンライン ドキュメントから見つけましたがstrncmp
、ドキュメントが少し不明瞭だったのでわかりませんでした。)
c - この strncmp の使用法には範囲外の読み取りが含まれていますか?
Fortify は、これが範囲外の読み取りであることを示します。
関数は の境界外からデータを読み取ると書かれていますless than 32 char
。
strncmp
が32 文字を超え、2 番目の文字列が 32 文字未満の場合、実際に結果は得られますか?
c - c "で始まる文字列から正確な単語を見つける
C プログラミング コースで C の演習を行っています。テキスト ファイルからリンクされたリストにデータを読み取り、一致するものを探してから、結果を出力する必要があります。
テキストファイルの例:
fgets()、sscanf()、および void 関数を使用してリンク リストに格納したため、文字列は引用符で始まります。
問題は、strncmp() を使用して文字列から単語を検索しようとしたときに、引用符が原因で機能しなかったことです。
私は次のようなことをしました:
文字通り、引用符で始まる文字列から正確な単語を見つける手がかりがありません。助けていただければ幸いです。
Barmarのアイデアのおかげで、今解決しました。strncmp() の代わりに strstr() を使用しようとすると、完全に機能しました。
c - volatile キーワードが使用されている場合でも、strncmp() が原因でコンパイラが共有メモリの読み取りを最適化しないのはなぜですか?
以下は、foo.c
共有メモリにデータを書き込むプログラムです。
bar.c
同じ共有メモリからデータを読み取る別のプログラムを次に示します。
最初に 1 つの端末でライター プログラムを実行します。
ライター プログラムがまだ実行されている間に、別のターミナルでリーダー プログラムを実行します。
リーダー プログラムは無限ループに入ります。オプティマイザーが次のコードを最適化したようです
に
mem
一度読み取られた後にデータを変更できるものは何もループ内にないためです。
しかし、私はこの理由のために正確に宣言mem
しました。volatile
コンパイラがそれを最適化するのを防ぎます。
コンパイラがまだ の読み取りを最適化しないのはなぜmem
ですか?
ところで、私はうまくいく解決策を見つけました。機能する解決策は、変更することです
に
両方のケースであると宣言されているにもかかわらず、コンパイラstrncmp((char *) mem, "exit", 4) != 0
が最適化するのに最適化しないのはなぜですか?mem[0] != 'e' || mem[1] != 'x' || mem[2] != 'i' || mem[3] != 't'
char *mem
volatile
c - Cでnullで終わらない文字列をstrncmpに渡すことは合法ですか?
実行可能ファイルのセグメントの名前を保持する 16 バイトの配列があります。
セグメント名の長さが 16 バイト未満の場合、残りは NULL バイトで埋められます。それ以外の場合、終端の null バイトはありません。
segname
など、さまざまな文字列と比較したい__text
。
strncmp
null で終わらない文字列で呼び出すことは合法ですか?
この投稿は、それが合法であることを前提としています。このソースコードも合法です。しかし、私の男のページには次のように書かれています:
この
strncmp()
関数は、null で終わる文字列s1
と を辞書式に比較しますs2
。
に渡されるstrncmp
サイズは のサイズになりsegname
ます。
何を参考にしようか迷っています。
c - fgets を使用してファイルから行を読み取り、各行を c の strncmp と比較します
次のようなファイルからすべての行を読みたい:
使いたい:
- ファイルを 1 行ずつ読み取る fgets()
- strncmp() を使用して、すべての行を指定された文字列と比較するか、適切な形式であることを確認します
私が持っているもの:
問題は、エラー解析が表示されるだけで、ここで何が間違っていたのかわかりません。
助けてくれてどうもありがとう!
ここで、いくつかのことを行いました (最初の 2 行の解析が機能するようになりました)。どうもありがとう。
// そして最後の記号は }\n でなければなりません