問題タブ [c-strings]
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 - 与えられた文の単語を構成する文字を数える
ある文に1文字、2文字、3文字、4文字の単語がいくつあるかを調べるプログラムを書こうとしていますが、ついにコードを思いついたのです。ただし、問題があります。コードは正常にコンパイルされましたが、実行に関しては、プログラムは失敗し、結果なしで終了します。
qt - Qt のデフォルト エンコーディングを UTF-8 に設定する
私の Qt アプリケーションでは、ソース コード ファイルは UTF-8 としてエンコードされています。次のコードの場合...
…そのメッセージボックスを表示すると、「š」という文字が「š」ではなく、何かおかしいと表示されます。これは、Qt がすべての C 文字列を LATIN-1 を使用してエンコードされているかのように変換するためです。これを解決するために、私は使用しています:
へのすべての呼び出しを取り除く方法はありQString::fromUtf8()
ますか?
c - memset+空白+memcpy
サイズ100の文字配列を空白に設定してから、10個のチャーターを他の同じ文字列にコピーするにはどうすればよいですか。例えば:
1つのchar配列がありますa[100]実行するには:すべてを空白に設定します
ここで、別の配列があります:b [10](これが長さ9の文字列で埋められていると仮定します)実行方法:この配列を前の配列にコピーします
しかし、10文字がコピーされた後、iamが設定したスペースを取得していません。
c - C for ループが機能しない?
私は C で文字列を文字配列として扱っており、値を for ループに動的に渡すことができるようにしようとしています。
次のコードは機能しますが、問題ありません。
実際、次のコードも機能します。
しかし、何らかの理由で、このコードは何も出力しません:
ループの直前と両方の値をチェックしたところ、それぞれ -6 と 11 にチェックアウトされまし-strlen(fragments[2]) + 1
た。strlen(fragments[1])
これらの値を直接その場所に配置するとループが機能することは明らかですが、2番目の値をstrlen
計算に置き換えるとループが壊れ、私の人生の理由を理解できません. ヘルプ?
編集
OverlapStrength はその引数を定数として受け取るため、それらを変更することはできません。したがって、途中でフラグメントを変更していないことは確かです。メソッド宣言は次のとおりです。
フラグメントの内容は重要ではありませんが、重複するフラグメントからつなぎ合わせようとしている単なる文字列です。フラグメントがすべて適切に出力され、このループの宣言以外でフラグメントの長さが適切に計算されることを確認しました。
c - cの文字配列の配列をどのように反復しますか?
配列を手動で1回ループし、各文字配列のstrlenのカウントを取得して合計し、合計値を使用して宛先を割り当ててから、配列を再度ループする必要がありますか?
文字の配列を含む配列のサイズをどのように見つけて、それらを反復処理できるようにしますか?
c++ - 特定の要素への C/C++ 文字列シフト - 最小限の手順
これが私のジレンマです。
たとえば、次の文字列があります。
"1 2 3 4 5 ..... 100" ですが、任意の長さにすることができます (通常は、4 桁の数字について話す、はるかに大きなもの)。
私がする必要があるのは、既知の位置に基づいて文字列の要素を再配置することです。例: 問題の位置は 70 です。次の出力が必要です: "70 71 ....100 1 2 3 ...69"
条件:
- 私は鍵を知っています:例えば上記の「70」。文字列の長さによっては、500、5000 の場合もあります。
- 文字列バッファまたは文字列管理関数を使用できません。
- 利用可能なメモリがほとんどまたはまったくありません。
- 2 つの 1 バイト バッファが利用可能です。
- 操作は可能な限り最小限の手順で実行する必要があります (タイム クリティカル)。
文字列内のキーの位置に依存しない優れたアルゴリズムを見つけようとしています。基本的に、自分の半分に応じて左/右にシフトすると、多くの読み取り/書き込みが可能になり、それは望ましくありません。
どうもありがとう!
c - 文字列リテラルは定数ですか?
重複の可能性:
Cでcharの文字列を変更することは可能ですか?
これは定数ポインタのようなものですか?位置3の文字をと書いて変更しようとするとs[3]='k'
、セグメンテーション違反が発生しました。だから私はそれが定数配列を指しているようなものだと思いますか、それともsは定数ポインタですか?2つのうちどちらですか?どうか明らかにしてください。
c - C関数での文字列の受け渡し
Cプログラミングで次の問題があります。
文字列の配列がwords[10][50]として保存されています。配列から各文字列を抽出して、それを別の関数に渡したいと思います。私は次のことを試しました:
これにより、コンパイル中に例外が発生します。ここで、「printf」ステートメントを使用すると、この命名法は正常に機能すると思います。ii words [i]は、2次元の単語配列から文字列「i」を出力します。チェック機能で同じことをしようとすると、エラーが発生します。
soemoneは、この通過を行う方法を教えてもらえますか?
PSプログラムの効率のエラーなどは無視してください。私はあなたの助けが必要です、そしてこれは関数に渡される文字列を学ぶための単なるテストプログラムですありがとう
c++ - C-文字列配列の初期化-これは変更可能ですか?
重複の可能性:
C文字列定数を変更しますか?
const char vs char array vs std::stringへのポインタ
私はおそらくこの質問で死んだ馬を打ち負かしていることを知っていますが、私は少し混乱していて、SOまたはgoogleで正確な答えを見つけることができませんでした(私は正しいと確信しています-情報が多すぎますふるいにかけるCストリング上)。また、特にCスタイルの文字列について話しているにもかかわらず、私が興味を持っているのはC++というタグを付けました。
この状況では:
「hello」と「goodbye」はどちらも不変の文字列だと思っていたでしょう。なぜなら、それらは文字列リテラルから来ており、charconst*に減衰するはずだからです。
ただし、この特定のケースでは、b配列から定数を取り除いた場合、「こんにちは」の変更は定義されていませんが、「さようなら」の変更は問題ありません。
bの場合、文字列はユーザー定義の配列に格納されているため、文字列は変更可能であると思います。
この場合、こんにちはとさようならは違いますか? この例では、何らかの理由で文字列リテラルではなく、さようならです。また、さようならが文字列リテラルでない場合、それはグローバルメモリに保持されておらず、コンパイル後の参照はユーザー配列セルに残っているものだけであると想定できますか?
c++ - getline cstring割り当て後の最初のユーザー入力を知る
これが私のC++関数です。
明らかに、ユーザー入力は毎回 12 文字に切り捨てられるため、while ループは機能しません。
ユーザー入力が長すぎるかどうかを効果的に判断し、条件が満たされるまでループし続けるにはどうすればよいですか?
編集:ここで 使用cstring
することは必須です。文字列を使用することがいかに簡単かはすでに知っています。
編集#2:これは私に多くのことを教えてくれたので、間違いなく実り多い質問でした. 最終コード: http://pastie.org/3537894