如何在字符串中添加int

时间:2010-03-06 19:46:05

标签: c++ string

我有一个字符串,我需要添加一个数字,即一个int。像:

string number1 = ("dfg");
int number2 = 123;
number1 += number2;

这是我的代码:

name = root_enter;             // pull name from another string.
size_t sz;
sz = name.size();              //find the size of the string.

name.resize (sz + 5, account); // add the account number.
cout << name;                  //test the string.

这有效......有点但我只得到“*名* 88888”并且......我不知道为什么。 我只需要一种方法将int的值添加到字符串的末尾

5 个答案:

答案 0 :(得分:5)

没有内置的运营商可以做到这一点。您可以编写自己的函数,为operator+string重载int。如果您使用自定义功能,请尝试使用stringstream

string addi2str(string const& instr, int v) {
 stringstream s(instr);
 s << v;
 return s.str();
}

答案 1 :(得分:4)

使用stringstream

#include <iostream>
#include <sstream>
using namespace std;

int main () {
  int a = 30;
  stringstream ss(stringstream::in | stringstream::out);

  ss << "hello world";
  ss << '\n';
  ss << a;

  cout << ss.str() << '\n';

  return 0;
}

答案 2 :(得分:4)

您可以使用字符串流:

template<class T>
std::string to_string(const T& t) {
    std::ostringstream ss;
    ss << t;
    return ss.str();
}

// usage:
std::string s("foo");
s.append(to_string(12345));

或者,您可以使用Boosts lexical_cast()等实用程序:

s.append(boost::lexical_cast<std::string>(12345));

答案 3 :(得分:1)

使用stringstream

int x = 29;
std::stringstream ss;
ss << "My age is: " << x << std::endl;
std::string str = ss.str();

答案 4 :(得分:0)

您可以使用来自提升的lexecal_cast,然后使用来自STL的C itoa,当然还有stringstream