如何使用字符串和整数获取字符串?

时间:2014-07-07 12:02:32

标签: c++ string

我希望输出类似这样的东西..

Word_1
Word_2
Word_3
.
.
.
Word_1234

etc...

我已经看到sprintfitoa等格式化字符串,将int转换为字符串。在sprintf的情况下,我必须声明大小。 使用"Word_"+itoa(iterator_variable),我想我可以得到所需的东西。但有没有更好的方法来获得所需的输出?

3 个答案:

答案 0 :(得分:1)

如果您有权访问C ++ 11,则可以使用std::to_string()

std::string s = "Word_";
std::string t = s + std::to_string( 1234 );
std::cout << t << std::endl;

答案 1 :(得分:0)

使用c ++我喜欢使用boost :: format和boost :: lexical_cast来解决这些问题。

答案 2 :(得分:0)

我建议使用stringstreams,因为它们允许将任何字符串,流和算术类型(以及其他内容)连接成字符表示。

#include <sstream>
#include <iostream>

int main()
{
    int n1 = 3;
    int n2 = 99;
    std::stringstream ss;

    // all entries in the same stringstream
    ss << "Word_" << n1 << std::endl;
    ss << "Word_" << n2 << std::endl;
    std::cout << ss.str();

    // clear
    ss.str("");

    // entries in individual streams
    std::string s1, s2;
    ss << "Word_" << n1;
    s1 = ss.str();
    ss.str("");
    ss << "Word_" << n2;
    s2 = ss.str();
    std::cout << s1 << std::endl << s2 << std::endl;

    return 0;
}