問題タブ [stdstring]

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

c++ - MD5値が余分な「f」文字で印刷されるのはなぜですか?

std :: stringのat()メソッドを使用すると奇妙な問題が発生します。このライブラリを使用して、指定された文字列のmd5ハッシュを計算したいと思います。http://sourceforge.net/projects/libmd5-rfc/files/ ハッシュは正しく計算されますが、人間の方法で印刷することに問題があります。出力は次のとおりです。

コードは次のとおりです。

「f」の文字はどこから来たのですか?

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

c++ - cout を使用して、ユーザー定義型から std::string への自動キャストを取得することは可能ですか?

質問のように、クラスで文字列演算子を定義すると:

そして、私はそれを使用します:

明示的なキャストではすべてがうまくいきますが、(文字列) を削除すると、コンパイラは std::string で宣言されたキャスト演算子が必要であると言います。私のタイプを自動的にキャストするべきではありませんか? 解決済み: operator<< (ostream& os, const Literal& l) をオーバーロードしています。

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

c++ - std :: stringをchar*として渡す必要がある場合、char *よりも優れたアイデアですか?

最近の質問で、のchar*代わりにパスしなければならない状況があることを学びましたstd::string。私は本当に好きstringで、不変の文字列を渡す必要がある状況では、を使用すると問題なく機能します.c_str()。私の見方では、操作が簡単な文字列クラスを利用することをお勧めします。ただし、入力が必要な関数の場合、次のようになります。

明らかに、これはそうではありません、ええと、簡単です。今、私はC ++にかなり慣れていないので、木の森を実際に見ることはできません。このような状況では、すべての入力をC文字列に変換して、stringの便利なメソッドを利用するために戻す必要がありますが、Cスタイルの文字列操作に慣れることは良い考えですか?この種の絶え間ない前後の変換は、対処するにはあまりにも愚かですか?

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

c++ - std::string の洗練された文字

私は問題があります。Linux 用のポーランド語 (もちろん、ポーランド語の文字を使用) でアプリを作成していますが、コンパイル時に 80 の警告が表示されます。これらは、「警告: 複数文字の文字定数」と「警告: ケース ラベル値が型の最大値を超えています」です。std::string を使用しています。

std::string クラスを置き換えるにはどうすればよいですか?

助けてください。前もって感謝します。よろしく。

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

c++ - 文字列の連結が期待どおりに機能しない

これがよくある問題であることはわかっていますが、参考文献やその他の資料を探しても、この質問に対する明確な答えが見つかりません。

次のコードを検討してください。

コンパイラから、 のオーバーロードされた演算子が見つからないことがわかりましたchar[dim]

文字列に + 演算子がないということですか?

しかし、いくつかの例では、このような状況があります。これがより多くの文字列を連結する正しい方法でない場合、最善の方法は何ですか?

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

c++ - std::cout << stringstream.str()->c_str() は何も出力しません

unsigned char && unsigned char の長さを取得する関数で、

結果:

  • WAS: 何も出力しません (const.. case へのポインタがあると思います)
  • GOOD:印刷データ
  • 悪い: 何も印刷しない
  • テスト、アサート: mystr.size() が渡された unsigned char サイズと等しいことを出力します。

私は試した:

  • string.assign(scp.rdbuf());
  • memcpy(文字、scp.str()、10);
  • 一時的な文字、文字列を作成/割り当てるさまざまな方法

助けはありません..データを含むstd ::cout 'able std::stringを取得する必要があります(パケットデータであるunsigned charであるfooから選択されました)。

元のfooがヌルで終了していない可能性があるか、問題は次のようなものであると推測します-単純ですが、入ることができません..ここで探すべきものは何ですか?

(このコードは、libpcapp のような既知の C++ マジック ラッパーを使用せずに、C++ の方法でパケットを出力するためだけに、libpcap を使用する別の試みです)。

0 投票する
7 に答える
65053 参照

c++ - wchar_t* を std::string に変換するにはどうすればよいですか?

クラスを std::string を使用するように変更しました (ここで得た回答に基づいていますが、私が持っている関数は wchar_t * を返します。それを std::string に変換するにはどうすればよいですか?

私はこれを試しました:

しかし、エラー C2440: 'initializing' : cannot convert from 'wchar_t *' to 'std::basic_string<_Elem,_Traits,_Ax>' と表示されます

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

gcc - std:string + int でコンパイルエラーが発生しないのはなぜですか?

同僚が std::string に整数を追加できると考えており、そのような操作をコードのあちこちで使用していることがわかりました。

この操作でコンパイラ エラーは発生しません。理由がわかりませんoperator+ (const string& lhs, int rhs);。int は暗黙のうちに char にキャストされますか? (gcc Red Hat 4.1.2 および -Wall スイッチでコンパイル)。

そして、最も重要なのは、int が std::string に追加されたすべての行をどのように見つけるのでしょうか?

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

c++ - std :: stringを正しく返す方法(またはその戻り値を正しく使用する方法)

グローバルなクラスがあるとします(たとえば、アプリのランタイムで利用可能)

最初のフォームを使用すると、私が行うときに奇妙な動作をします

printfが使用する前に、文字列がメモリから消えたように見えます。値を出力する場合もあります。それ以外の場合は、クラッシュするか、何も出力しません。

私が最初にそのように文字列をコピーした場合

物事はうまくいきます。

確かに、一時的な文字列でこれを回避する方法が必要です。

編集:したがって、コンセンサスはconst std :: string&returnvalueを使用することです。

元のコードは問題ないはずだと誰もが言っていることは知っていますが、WindowsCEでMSVC2005に問題が発生しているのを見たことがありますが、CEボックスでのみです。Win32クロスコンパイルではありません。

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

c++ - VisualStudio2010のコンパイルエラーがstd::string?

ですから、これはおそらく私が最近見た中で最も奇妙なことであり、これがどのように起こり得るのか興味がありました。コンパイラは、戻り型として使用された場合はstd :: stringが未定義であるが、クラスのメソッドでパラメータとして使用された場合は定義されていないというエラーを出しました。

すべてを再構築するそれでもまだ起こったのですが、宇宙を再調整するために、クリーンなソリューションを選択してから、すべてを再構築する必要がありました。今のところ解決されていますが、特にSTLに完全修飾名を常に使用している場合に、競合が発生しない理由がわからないため、これを引き起こした原因を知りたいと思います。