0

此示例代码有效吗?

std::string x ="There are";
int butterflies = 5;
//the following function expects a string passed as a parameter
number(x + butterflies + "butterflies");

这里的主要问题是我是否可以使用 + 运算符将整数作为字符串的一部分传递。但如果有任何其他错误,请告诉我:)

4

5 回答 5

4

C++ 不会自动转换为这样的字符串。您需要创建一个字符串流或使用类似 boost lexical cast 的东西。

于 2012-08-02T01:01:42.597 回答
2

You can use stringstream for this purpose like that:

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

int main()
{
    stringstream st;
    string str;

    st << 1 << " " << 2 << " " << "And this is string" << endl;
    str = st.str();

    cout << str;
    return 0;
}
于 2012-08-02T01:06:48.020 回答
1

不,这行不通。C++ 它不是一种无类型语言。所以它不能自动将整数转换为字符串。使用 strtol、stringstream 等。

于 2012-08-02T01:02:58.230 回答
1

C 比 C++ 多,但是sprintf(类似于printf,但将结果放在字符串中)在这里会很有用。

于 2012-08-02T01:04:31.203 回答
1

将整数转换为字符串的一种安全方法是摘录如下:

#include <string>
#include <sstream>

std::string intToString(int x)
{
  std::string ret;
  std::stringstream ss;
  ss << x;
  ss >> ret;
  return ret;
}

由于上述原因,您当前的示例将不起作用。

于 2012-08-02T01:04:39.927 回答