問題タブ [cstring]
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++ - CStringを使用してintを変換し、コンソールに送信する
私のコンソールアプリケーションは、コンソールに整数を書き込もうとしています。
「」がコンソールに書き込まれることを期待170
していますが、何が起こるかは「00E21280
」です。これはアドレスです。そのメモリ位置に「170」が保存されていることを確認しました。何か案は?
c++ - C スタイルの文字列を操作しますか?
こんにちは、私の質問は、2 つの C スタイルの文字列を 1 つに追加するにはどうすればよいですか?
C++ のやり方 (std::string) に慣れているので、C スタイルの文字列に触れたことがなく、現在の開発プロジェクトのためにそれらについてもっと学ぶ必要があります。例えば:
前もって感謝します。
c++ - float\double の数値を CString にフォーマットし、ゼロを埋め、桁数を事前設定します
次の float\double 数値を CStringにフォーマットする簡単な方法を探しています。
私は CString.Format() を使用したいと思っていましたが、最終的に CString になる限り、代替手段も歓迎します。
次の形式に:
小数点がないことに注意してください。
これは簡単にできますか?
c - C文字列から最初の文字を削除するにはどうすればよいですか?
誰か助けてくれませんか?char *
Cのaから最初の文字を削除する必要があります。
たとえば 、配列の最初の文字として文字char * contents
が含まれています。'\n'
この文字を検出して削除し、「サニタイズ」された後に元の変数を変更する必要があります。
誰かがコードを手伝ってくれますか?私はCにまったく慣れていないので、理解できないようです。
c++ - C++c文字列の配列/他のタイプの配列を削除します
[編集]
さて、それは理にかなっているので、sharptoothとCashCowに感謝します。constとして割り当てられたデータを削除することはできません。これにより、文字列リテラルが問題から外れます。したがって、初期化を次のように変更すると、次のようになります。
forループをハードコーディングして、i=1とi=2のみを繰り返すようにすると、すべてが機能します。
int arraySize = sizeof arr / sizeof *arr;
配列がローカルではなくnew[]で割り当てられている場合にのみ、機能するように見えることに気付きました。これは、元のchar ** groups;
変数がポインターに減衰するためですよね?
今、私は疑問に思っていますが、データが定数であるかどうかを判断する方法はありますか?
[オリジナル]
配列とポインタは悪であり、ベクトルとリンクリストと呼ばれるこれらの素晴らしいものがあることを私は知っています。
しかし、私はメモリ管理に関しては初心者であり、少しマゾヒスティックな感じがします。C文字列の配列を作成するとします。この質問type a = new type[len];
とFAQ-Liteから、と一致する必要があることがわかりますdelete[] a;
。またはそう思います。
FAQ-Liteはここでジャグ配列の管理について話しますが、彼は行列に焦点を合わせており、それが私が行っていることに当てはまるかどうかはわかりません。
このコードは私には理にかなっていますが、でのアサーション(Visual Studio 2008でのデバッグ)に失敗しますdelete[] a;
。これの何が問題になっていますか?また、このタスクを実行するにはどうすればよいですか?
c++ - NULL で終了する文字列とその長さ
私は、NULL文字列を表すために、いくつかの独自のものを受け取り、それを解析し、(メッセージを表すクラスに埋め込まれた)静的なchar配列の束を作成するレガシーコードを持っています。その後、文字列へのポインターがすべて渡され、最終的に何らかのバッファーにシリアル化されます。
プロファイリングは、str*()
メソッドに多くの時間がかかることを示しています。
ですので、可能であれば利用したいと思いmemcpy()
ます。それを達成するには、長さを NULL 終端文字列へのポインタに関連付ける方法が必要です。私は考えました:
メモリの割り当てとスレッドの同期が必要なため、使用
std::string
すると効率が悪くなります。使えます
std::pair<pointer to string, length>
。しかし、この場合、「手動で」長さを維持する必要があります。
どう思いますか?
c++ - C ++、OpenGL:c-stringsの奇妙な問題
ここにC++の問題がありますが、これは単純に理解できません。
私は2つのわずかに異なる機能を持っています。どちらもまったく同じことをする必要があります。ただし、正しく機能するのは1つだけです。
メソッド1:メソッドの入力は'const string samplerName = "test"'
方法2:
ご覧のとおり、glGetUniformLocationは2つの異なる値を返します。正しい戻り値は、「-1」ではなく「0」になります。では、2つの呼び出しの違いは正確には何でしょうか。
quote: "c_str()は、文字列オブジェクトと同じ内容のnullで終了する文字シーケンス(c-string)を生成し、それを文字配列へのポインタとして返します"。そして、それこそが、メソッドglGetUniformLocation(...)が2番目のパラメーターとして必要とするものです。では、なぜ上記の方法2だけが成功するのでしょうか。コンパイラの問題ですか?
Win7でMSVisualStudio2008を使用しています。
私はこのバグを2日近く探しています。私は本当にこれを明確にしたいと思います。それは私を夢中にさせました...
ありがとうウォルター
編集:
これも機能しません。
c - C文字列の最初の部分を削除します
私はこれを理解するのに多くの問題を抱えています。C文字列があり、その最初の部分を削除したいと思います。「食品、量、カロリー」としましょう。これらの値をそれぞれコピーしたいのですが、コンマはコピーしません。カンマを見つけて、カンマの位置をメソッドに返します。それから私は使用します
「theLine」を配列「i」の最初の「end」文字のみでコピーするには(最初のコンマがあるので、初めて「end」は4になります)。しかし、ループ内にあるため、配列から「Food」を削除して、プロセスをやり直したいと思います。ただし、最初の部分を削除して(または配列ポインターを前方に移動して)残りの部分を保持する方法がわかりません。どんな助けでも役に立ちます!
visual-studio-2008 - std::map 安っぽい文字はリリースモードでのみ
関数のパラメーターとして std::map があり、デバッグ モード (VS2008) ではマップに正しいキーと値がありますが、リリースでプログラムを開始すると、マップにひどい文字が入ります!
コード ダンプ:
このコードがリリースモードで機能しない理由はありますか???
感謝と挨拶
c++ - Format() を使用してフォーマットされた CString で無効なデータが取得されるのはなぜですか?
ファンキーな値やクラッシュが発生し続けます。どんな提案でも大歓迎です。