long
をC++のstring
に変換するにはどうすればよいですか?longをC++の文字列に変換するにはどうすればよいですか?
答えて
stringstreamを使用できます。
#include <sstream>
// ...
std::string number;
std::stringstream strstream;
strstream << 1L;
strstream >> number;
コンパイラの標準ライブラリには、通常、独自のC関数があります。私はより多くの "ポータブルな"変種を好む。
これを行うにはsprintfを使用しますが、これはあまり安全ではありません。いくつかのライブラリには、sprintf_sのようなバッファオーバーランから保護する新しいバージョンがあります。
チェックアウトstd::stringstream
。
#include <sstream>
....
std::stringstream ss;
ss << a_long_int; // or any other type
std::string result=ss.str(); // use .str() to get a string back
これはstd :: stringではなく、std :: stringです。 – avakar
ありがとうございます - 指のトラブル。 –
私は通常sprintfを使用しています。
char buf[5] = {0}; // one extra byte for null
sprintf(buf, "%l", var_for_long);
-1。 C++コンパイラはコードをコンパイルしますが、確かにC++と呼ばれるべきではありません。さらに、私は5文字で十分だろうと思う。 – avakar
この日にsprintfを推奨しないでください。バッファオーバーランエクスプロイトが十分ではありませんか?このコードに書かれているように見えるわけではありませんが、物事がどのように変化するかはわかりません。 – philsquared
フィル、バッファは10000以上の任意の数でオーバーフローします。 – avakar
int main()
{
long mylong = 123456789;
string mystring;
stringstream mystream;
mystream << mylong;
mystring = mystream.str();
cout << mystring << "\n";
return 0;
}
いくつかの方法があります。だから、長い間、あなたは32ビットアーキテクチャ上にあると仮定して、次の操作を行う可能性があるため。詳しくはThe String Formatters of Manor Farmを読んでください。
それは良い記事です。 – Skurmedel
はい。これは少なくとも私がそれをリンクした3回目です。 8v) –
私はこれは宿題の種類を知りませんが、おそらく先生があなたの答えを望んでいません単に "魔法の"既存の関数を呼び出すことが推奨されますが、自分で実装することができるかどうかを確認したいと考えています。
私の先生は、「あなたがシステムで見つけられるのではなく、あなた自身でプログラムできるかどうかを見たい」と言っていました。まあ、彼はどのように間違っていた;)...
とにかく、あなたの先生はここに、同じであることを行うには、ハードな方法であれば...
std::string LongToString(long value) { std::string output; std::string sign; if(value < 0) { sign + "-"; value = -value; } while(output.empty() || (value > 0)) { output.push_front(value % 10 + '0') value /= 10; } return sign + output; }
があなたがstd::string
を使用していないと主張している可能性があり"難しい道"、しかし、私は実際のアゴリズムに何が含まれるかを推測します。ここ
今度は、準備ができた機能を使用するのがいいです。しかし、このきちんとした考えに感謝します。 –
本当ですか?彼はちょうどあなたがどこかの関数を見つけることができるかどうかをチェックしていますか?ええ、時間は変わった;).. – beef2k
@ beef2kさらに良い - 彼は私がOOPを知っていることに気づいて感動し、何かをチェックしない。 :) –
boost::lexical_cast<std::string>(my_long)
より、これまで誰にもカバーされていないもののhttp://www.boost.org/doc/libs/1_39_0/libs/conversion/lexical_cast.htm
+1、もともと、lexical_castは受け入れられたストリングストリームの例を少し上回りました(より表現力豊かにまとめられています)。 – philsquared
一つ、あなたが問題をさらに考えるのに役立つが、それは文字列に時間がかかりキャストされる必要があるときにどのような形式です。
(Calc/Excelのような)スプレッドシートプログラムをご覧ください。それが陰性であれば角括弧をつけて、常に符号を表示してください。実際に番号が他のものを表していますか?代わりに、それをOractalまたはHexで表示してください。
これまでの回答からは、デフォルトの出力が得られましたが、正しい出力が得られなかった可能性があります。
私がそれを必要とするなら、私は私の質問を編集するでしょう。 :) –
それを愛し、私は問題に考えられた答えを与えて、宿題についての考えを助けるために、既にそこにあった答えを与えずに、私がdownvoteを得て、一方で 'std :: stringstream'がupvoteを持っている... –
C++ 11では、実際には文字列>にstd :: to_string関数とstd :: to_wstring関数があります。
string to_string(int val);
string to_string(long val);
string to_string(long long val);
string to_string(unsigned val);
string to_string(unsigned long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string (long double val);
あなたはつべこべのC++ 11
long val = 12345;
std::string my_val = std::to_string(val);
- 1. C#で文字列をPascalCase文字列に変換するにはどうすればよいですか?
- 2. C++/Arduino:文字列/文字配列をバイトに変換するにはどうすればよいですか?
- 3. C#で文字列を文例に変換するにはどうすればよいですか?
- 4. C#で文字列をバイト配列に変換するにはどうすればよいですか?
- 5. C++でchar配列を文字列に変換するにはどうすればよいですか?
- 6. C#で文字列を変数名に変換するにはどうすればよいですか?
- 7. C++で最初の文字を大文字に変換するにはどうすればよいですか?
- 8. C#IP範囲を文字列配列に変換するにはどうすればよいですか?
- 9. PHPで文字列を日付に変換するにはどうすればよいですか? C#ので
- 10. 文字列を文字配列に変換するにはどうすればよいですか?
- 11. PHP文字列値をアンドロイド文字列値に変換するにはどうすればよいですか?
- 12. C#で特定の文字列[index]をintに変換するにはどうすればよいですか?
- 13. 大量の文字列をC++で整数に変換するにはどうすればよいですか?
- 14. 文字のLazySeqをClojureの文字列に変換するにはどうすればよいですか?
- 15. 構造体をCの文字配列に変換するにはどうすればよいですか?
- 16. バッファをC++のバイナリ文字列に変換するにはどうすればよいですか?
- 17. Cで文字列をdouble値に変換するにはどうすればよいですか?
- 18. C#でncharを文字列に変換するにはどうすればよいですか?
- 19. IOrderedEnumerable <char>をC#で文字列に変換するにはどうすればよいですか?
- 20. 文字列の文字をリストに変換するにはどうすればよいですか?
- 21. 1つの文字を文字列に変換するにはどうすればよいですか?
- 22. 文字エスケープシーケンスを含む文字列をcharに変換するにはどうすればよいですか?
- 23. アンマネージドIntPtr型をC#文字列に変換するにはどうすればよいですか?
- 24. 12時間文字列をC#TimeSpanに変換するにはどうすればよいですか?
- 25. 文字列をOctetString(C#)に変換するにはどうすればよいですか?
- 26. Excel VBAで文字列をlong()型配列に分割するにはどうすればよいですか?
- 27. 文字列をユニコード文字に変換するにはどうすればよいですか?
- 28. UTF-8文字列を大文字に変換するにはどうすればよいですか?
- 29. 文字列を小文字に変換するにはどうすればよいですか?
- 30. 変換文字列をutf-8に変換するにはどうすればよいですか? (Swift、Alamofire)
だけビットでstd::to_stringを使用することができます...私は、この "キャスト" 呼び出すことはありません。 – kbyrd
@krbyrdなぜか教えてくれますか?私は.NETist自身ですが、C++はまだ私にとって不快感を感じています。 :) –
同意すると、これは変換であり、キャストではありません。 – ralphtheninja