問題タブ [character-arrays]

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 投票する
2 に答える
17438 参照

c - scanf()、sscanf()、または fscanf() の %[] または %[^] 指定子は、入力をヌル終了文字配列に格納しませんか?

Beez Cガイド (LINK)%[]がフォーマット指定子について語っていることは次のとおりです。

It allows you to specify a set of characters to be stored away (likely in an array of chars). Conversion stops when a character that is not in the set is matched.

この前提から生じるいくつかの基本的な質問を明確にしていただければ幸いです。

1)これらの 2 つの形式指定子によってフェッチされた入力はchar*、文字配列または\0終端文字 (文字列) を含む文字配列として (型の) 引数に格納されますか? 以下のプログラムのように、文字列を文字列としてフェッチし、特定の文字 (否定された文字セット内) に遭遇したときに停止したい場合、文字列ではない場合、文字列として格納するにはどうすればよいですか?

2)%[^|]私のプログラムは、否定された文字が検出されたときに指定子の処理が停止することを示唆している|ようです。を無視して|使用したため、%*c使用しましたが、テストしたところ%c、タイプの追加の引数を使用するとchar、文字|が実際にその引数に格納されることがわかりました。

3)そして最後に、私にとって非常に重要なことですが、%s書式指定子の文字配列を渡すことprintf()と文字列 (NULL で終了する文字配列)を渡すことの違いは何ですか? character array vs string) の%sフォーマット指定子printf()の場合、文字列と同じように出力されます。違いは何ですか?

//%[^] 指定子を説明するプログラム

//文字配列 vs 文字列

出力 JON

//%*c の代わりに %c を使用

出力 fruit,apple,lemon,and the character is |

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

c - 文字列配列にヌル文字を追加するのはなぜですか?

次のように文字列配列を終了するには、null 文字を使用する必要があることを知っています。

しかし、このような配列を終了するためにヌル文字を使用することが不可欠な理由を知りたかっただけです。

また、これらを終了するためにヌル文字を追加してみませんか :-

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

c - C で 2 つの文字列を減算する

ええと、私は実際に strcmp() を見ていましたが、その動作について混乱していました。とにかく、私はこのコードを書きました

そして、私は出力を次のように取得します

誰でも説明できます16か?

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

c++ - c++ char配列サイズの検証

1000 個の要素を保持できる文字配列があります (「\0」の場合は +1)。配列はユーザ​​ー入力によって埋められます。入力が配列が保持できる以上のものであるかどうかを確認する方法があるかどうか疑問に思っていました。追加しようとすると、サイズを比較する前にプログラムがクラッシュします。配列を拡張して、入力が 1000 文字未満かどうかを確認することを考えていましたが、そのアイデアはあまり良いものではないようです。

編集:

std::cin.getline()ユーザーからの入力を取得するために使用していて、クラスを使用できませSting

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

c - C の文字配列 (Puts と printf)

C の文字配列に関して疑問があります。サイズ 1 の文字配列があります。論理的には、2 文字を超える文字を入力すると、セグメンテーション違反が発生するはずですがputs、配列を適切にprintf出力するのに対し、ガベージ値と一緒の配列、なぜこれが起こっているのですか

O/P:

これに加えてarray size、プログラムに の複数の文字を入力して、セグメンテーション フォールトをスローする必要があります。スタック内の SFP が原因ですか? SFP のサイズは 4 バイトです 間違っていたら訂正してください