問題タブ [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.

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

c - Cで、最初の2文字だけをstrcmpしてから連結する方法は?

Cでは、最初の2文字だけをstrcmpするにはどうすればよいですか?次に、別の文字列と連結しますか?このようなもの:

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

c - これら2つのプログラムがVC++2008で異なる出力を提供するのはなぜですか?

これら2つのプログラムがVC++2008で異なる出力を提供するのはなぜですか?

結局のところ、同じ文字列が比較されます。

strcmp__usage.c

出力

strncmp_usage.c

出力

0 投票する
1 に答える
2324 参照

iphone - strcmpが常にtrueを返すのはなぜですか?

iPhoneアプリからのユーザーテキスト入力を、宣言した静的配列のテキストと比較しようとしています。テキストが異なっていても、常に「true」を返します。strncmpを実行した後、両方のテキストフィールドを表示します。人間の目には、それらは私がフィールドに期待するものです。画面に戻ったdebugmsgは、値がどうなるかを示していますが、比較は常にtrueになっています。任意の提案をいただければ幸いです。ありがとう。

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

c - strncmp 関数は n 文字でチェックを停止しませんか?

私のプログラムは 2 つの文字列を完全に比較し、文字数が n に達すると停止しませんか? なぜこれが起こるのですか?

0 投票する
1 に答える
4866 参照

c - Cで入力ファイルを読み取るときに空白を無視する

すべての行の最初の単語をコマンドとして登録するコードを作成しようとしていますが、前にスペースがあるかどうかに関係なく単語を読み取れるようにしたいと考えています。現在、これを行うために各行の最初の x 文字に fgets() と strncmp を使用していますが、任意の量の空白では機能しません。fgets() ループ内で sscanf() を使用して、各行の最初の単語を変数に格納しようとしましたが、行をスキップして誤って読み取っているようです。コードはかなり長いので投稿したくありませんが、基本的には次のとおりです。

多くの strncmps があり、それぞれが先行する任意の量のスペースを無視するようにしたいと思います。

0 投票する
8 に答える
4059 参照

c - 文字をCで指定された文字のセットと比較する方法は?

stdin上の文字と自分の仕様の文字を比較できるようにしたいと思います。これの目的は、コマンドとして指定された単一の文字のみを維持しながら、他のすべての入力を間違っているものとして除外することです。「nn」や「qddaw」のように->間違ってもう一度行きますが、「n」は何か便利なものになります。stdin

これが私が「コード的に」心に留めていることです:

さて、私は次のような指定された文字で配列を作成しようとしたarray[] = {'a', 'b', 'c'}ので、関数strncmpを使用してstdinの文字列と比較することができました。

しかし、それは機能していないようです。助言がありますか?

編集1:これが実際のコードです:

ご覧のとおり、私は「q」をうまく処理しましたが、複数の文字はお尻の痛みです。アドバイスありがとうございます。

編集2:つまり、入力を指定された文字のセットと比較し、1つまたは別の文字が存在する場合にのみ関数が渡される関数が必要です(ただし、文字が一緒にある場合は通過しません)。 'qs'のように)

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

c - Cでのrs232文字列比較

RS232 ポートからコマンドを読み取り、次のアクションに使用できるプログラムを作成しようとしています。

文字列比較コマンドを使用して、目的の「アクション」文字列を RS232 文字列と比較しています。文字列変換のどこかで問題が発生しています。putstr コマンドを使用して、マイクロコントローラーがコンピューターから取得しているものを確認しましたが、適切に機能しません。真ん中にドットまたは「d」を付けて、文字列の最後の2文字を返します。(ドット/ dがどこから来たのかまったくわかりません..)

これが私のメインコードです:

これらは使用される RS232 関数です:

マイクロチップを端末に接続してこのプログラムを使用すると、次のような結果が得られます。

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

c - 文字列比較のためにこのCコードでfgets()とstrncmp()が機能しないのはなぜですか?

これは私が遭遇している非常に楽しい問題です。私はスタックオーバーフローで多くの検索を行いましたが、他の人にも同様の問題があることがわかりました。だから私はそれに応じてコードを書きました。私はもともと持っていましたfscan()strcmp()、それは完全に私を爆撃しました。したがって、他の投稿が提案fgets()strncmp()、長さを使用してそれらを比較します。

2つの文字列のサイズを出力して、自分が行っていることをデバッグしようとしました。たぶん、彼らは/nそこか何かに浮かんでいて、それを台無しにしているのではないかと思いました(別の投稿がそれについて話しましたが、私はそれがここで起こっているとは思いません)。したがって、サイズが同じである場合、の制限は同じであるstrncmp()必要があります。右?それらが正しく比較されていることを確認するためだけに。0これで、文字列が同じ場合は、それ以外の場合は。で負の値が返されることがわかりましたstrncmp()。しかし、それは機能していません。

これが私が得ている出力です:

これが私のコードです:

以下の提案から更新しました。char *特に、ポインタとしてと何かを文字列として参照することの違いを学んだ後。ただし、それでも同じエラーが発生します。

MAX_WORD_LENGTHこれは、私のプログラムの上部で次のように使用される定義ステートメントであることに注意してください。

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

c - C Strncmp リターン部分入力

現在、リンクされたリスト構造を実行していますが、ユーザーが特定のフィールドの構造体を検索できるようにする方法を見つける必要があります。私はこれを行いましたが、問題はそれが正確でなければならないということです。たとえば、ユーザーが「maggie」と入力すると結果が返されますが、ユーザーが「mag」と入力すると、必要な maggie レコードが返されません。

何か案は?文字と比較する方法があると思いますか?ありがとう!

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

c++ - C++: 面白い文字列比較のクラッシュ

C ++プログラムで単純なコマンドライン引数を取り込んで、さまざまなプログラムの動作をトリガーしようとしています-「y」(またはyで始まる任意の文字列-私はあまり気にしません)を含めると、プログラムはいくつかの中間結果を表示します.
一緒に走るとき

ccal pix.txt

すべて正常に動作します。

私が使うとき

ccal pix.txt はい

それは問題なく実行され、私の写真が表示され、最後にクラッシュします。

また、

ccal pix.txt いいえ

pixを表示せずにすべてを正常に実行し(本来あるべきように)、最後にクラッシュします。

関連するコードは次のとおりです-何が間違っていますか?

奇妙なことに、ケース 3 のテストを次のように切り替えても、次のようになります。

私はまだ同じ動作を取得します。私は一生、理由を理解することはできません。