問題タブ [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 の配列を初期化する
なぜ私はこれを行うことができます:
しかし、これではありません:
関数呼び出し内で cstring の配列を初期化することは不可能ですか?
その他のちょっとした情報は次のとおりです。
c - このように cstring の配列を初期化できないのはなぜですか?
これがエラーを返すのはなぜexpected expression before ‘{’ token
ですか? このように配列を初期化する理由は、後で次のように内容を変更できるようにするためです。
c - このように 2 次元配列が適切に初期化されていると仮定できますか?
次のように 2 次元配列を宣言すると、次のようになります。
この配列の他のすべての文字が に設定されていると仮定できます\000
か?
c++ - UTF-8、CString、CFile? (C++、MFC)
私は現在、特にUTF-8で動作する必要があるMFCプログラムに取り組んでいます。ある時点で、UTF-8 データをファイルに書き込まなければなりません。そのために、CFiles と CStrings を使用しています。
utf-8 (より正確にはロシア語の文字) データをファイルに書き込むと、出力は次のようになります。
など。これは確実に utf-8 ではありません。このデータを正しく読み取るには、システム設定を変更する必要があります。非 ASCII 文字をロシア語のエンコーディング テーブルに変更することはできますが、ラテン語ベースの非 ASCII 文字はすべて失敗します。とにかく、それは私がそれを行う方法です。
何か不足していますか?代わりに何か他のものを使用しますか? 私が見逃したある種のキャッチはありますか?仲間のプログラマーの皆さんの知恵と経験に耳を傾けます。
編集:もちろん、質問したばかりなので、ここで見つけることができる興味深いものをついに見つけました。私はそれを共有するかもしれないと思った。
編集2:
さて、BOM をファイルに追加しました。ファイルには中国語の文字が含まれています。おそらく、行を UTF-8 に変換していないためです。ボムを追加するには...
そしてその後、私は追加しました...
しかし、TestLine の長さを取得する方法がよくわからないため、コンパイルできません。strlen は TCHAR を受け入れないようです。 修正され、代わりに 1000 の静的な長さが使用されました。
編集3:
だから、私はこのコードを追加しました...
コンパイルは問題なく行われますが、新しいファイルを見てみると、この新しいコードがまったくないときとまったく同じです (例: Ðàñïå÷àòàíî:)。一歩も踏み出せなかったような気もしますが、勝敗を分けるのは些細なことだと思います。
編集4:
ネイトが尋ねたので、以前に追加したコードを削除し、代わりに彼のコードを使用することにしました。
すべて正常にコンパイルされますが、ロシア語の文字は ??????? と表示されます。近づいていますが、まだそうではありません。ところで、私を助けようとした/助けようとしてくれたすべての人に感謝したいと思います。私はこれでしばらく立ち往生しています。この問題がなくなるのが待ちきれません。
最終編集 (私は願っています) 最初に UTF-8 文字を取得する方法を変更することで (本当に知らずに再エンコードしました)、これはテキストを出力する新しい方法で間違っていましたが、許容できる結果が得られました。ファイルの先頭に UTF-8 BOM 文字を追加することで、Excel などの他のプログラムで Unicode として読み取ることができます。
万歳!みんなありがとう!
c++ - ファイルが開かず、デバッガーの外部で実行するとセグ フォールトが発生する (c++)
こんにちは(事前に感謝します)
私はちょっと困惑しています。なぜセグフォルトをしているのか理解できません。
いくつかのメモ:
- これはコース用です。残念ながら、std::string の代わりに C 文字列を使用する必要があります。
- 私のコードを修正しないでください (私はその方法を学びませんし、あなたを悩ませ続けます)。私の論理の欠陥を指摘し、別の機能/方法を提案してください。
- プラットフォーム: Suse Linux 11.2 (2.6.31 カーネル) 上の gcc バージョン 4.4.1
これがコードです
main.cpp:
Dict.h/.cpp
Entry.h/cpp
c - より大きなcharポインタのリストでcharポインタの配列を上書きする方法は?
私の関数には、とりわけ、引数を持つコマンドを構成する単語へのポインターの NULL 終了配列を含む構造体が渡されています。
引数のリストでグロブ一致を実行して、それらをファイルの完全なリストに展開し、渡された引数配列を新しい展開された配列に置き換えたいと考えています。
グロビングは正常に機能しています。つまり、g.gl_pathv に予期されるファイルのリストが入力されています。ただし、この配列を指定された構造体にコピーするのに問題があります。
編集 1: また、プログラムを cmd->argv[0] としてそこに戻す必要があることに気付きました
編集 2: calloc への呼び出しを追加しました
編集 3: Alok からのヒントを使用してメモリ管理を編集します
編集 4: Alok からのその他のヒント
編集 5:ほとんど動作しています..コマンド構造体を解放するときにアプリのセグメンテーション違反
最後に:終端のNULLが欠けていたようですので、次の行を追加してください:
それを機能させるように見えました。
c# - CString配列をSystem::Stringに変換します
CString配列をマネージコードに変換したいのですが、C#に送信します。通常のCStringの場合、私はこのようにしました。
しかし今、私は文字列の配列を送信したいと思います。CString配列の方法がわかりません。
私がこのように与えたとき、それはエラーを示しています
どうすれば変換できますか?
c++ - CStringをBYTE配列に変換できません
CStringをBYTE配列に変換する必要があります。理由はわかりませんが、インターネットで見つけたものはすべて機能しません:(たとえば、私は
私はそうしようとしてきました1)
2)
3)
そして常にpbBufferにはstrの最初の文字だけが含まれています
は2です
しかし、const stringを使用する場合:
pbBufferには文字列全体が含まれています
私の間違いはどこにありますか?
c - 日付の比較関数
私は次のような構造体を持っています:
私がやりたいことは、「格納された」構造体を格納された日付でソートすることです。
その日を並べ替えるにはどうすればよいかよくわかりません。それらを c-string として比較しますか?
c++ - c++を使用して文字列をintにハッシュするにはどうすればよいですか?
独自のハッシュ関数を作成する必要があります。文字列内の各文字を数値 (つまり、a=1、b=2、c=3、...) にマップする単純なハッシュ関数を作成したいだけの場合、このハッシュを実行できる方法はありますか?個々の文字を調べるために最初に文字列を c-string に変換する必要のない文字列ですか? 文字列をハッシュするより効率的な方法はありますか?