type-conversion - c++ int string 変換 0埋め - C++でintを文字列に変換する最も簡単な方法

c++ 文字列 結合 / c++ / string / int

C ++で int から同等の string に変換する最も簡単な方法は何ですか。私は2つの方法を知っています。もっと簡単な方法はありますか?

int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
int a = 10;
stringstream ss;
ss << a;
string str = ss.str();

bcr



Answer #1

lexical_cast は関数テンプレートの提供、それらをテキストとして表現されているときに、任意の種類の一般的な変換をサポートするための便利で一貫性のある形。
-ブーストのドキュメント

lexical_cast は関数テンプレートの提供、それらをテキストとして表現されているときに、任意の種類の一般的な変換をサポートするための便利で一貫性のある形。
-ブーストのドキュメント

#include "boost/lexical_cast.hpp"
#include <string>

int main() {
    int x = 5;
    std::string x_str = boost::lexical_cast<std::string>(x);
    return 0;
}
#include <stdlib.h>

int main() {
    int x = 5;
    char * x_str = new char[2];
    x_str = itoa(x, x_str, 10); //基数10
    return 0;
}

printfでformatを使用した場合に印刷されるのと同じテキストで文字列を作成しますが、内容は印刷されるのではなく、strが指すバッファにC言語の文字列として保存されます。
-- cplusplus.com

#include <stdio.h>

int main() {
    int x = 5;
    char * x_str = new char[2];
    int chars_written = sprintf(x_str, "%d", x);
    return 0;
}
#include <sstream>
#include <string>

int main() {
    int x = 5;
    std::ostringstream stream;
    stream << x;
    std::string x_str = stream.str();
    return 0;
}