как я добавляю интервал к строке

у меня есть строка, и я должен добавить число к ней т.е. интервал как:

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.

это работает... несколько, но я только получаю "*name*88888", и... я не знаю почему. мне просто нужен способ добавить значение интервала в конец строки

5
задан blood 6 March 2010 в 19:46
поделиться

5 ответов

Используйте строковый поток .

#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;
}
4
ответ дан 18 December 2019 в 13:13
поделиться

Не существует встроенных операторов, которые бы это делали. Вы можете написать собственную функцию, перегрузить operator+ для string и int. Если вы используете пользовательскую функцию, попробуйте использовать stringstream:

string addi2str(string const& instr, int v) {
 stringstream s(instr);
 s << v;
 return s.str();
}
5
ответ дан 18 December 2019 в 13:13
поделиться

Вы можете использовать строковые потоки:

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));
4
ответ дан 18 December 2019 в 13:13
поделиться

Используйте stringstream.

int x = 29;
std::stringstream ss;
ss << "My age is: " << x << std::endl;
std::string str = ss.str();
1
ответ дан 18 December 2019 в 13:13
поделиться

вы можете использовать lexecal_cast из boost, затем C itoa и, конечно, stringstream из STL

0
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: