字符串作为参数(C ++)

时间:2012-08-02 00:59:56

标签: c++ string parameters int concatenation

此示例代码有效吗?

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

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

3 个答案:

答案 0 :(得分:4)

C ++不会像这样自动转换为字符串。你需要创建一个stringstream或使用boost lexical cast。

答案 1 :(得分:1)

不,它不会起作用。 C ++它不是无类型语言。所以它不能自动将整数转换为字符串。使用类似strtol,stringstream等的东西

答案 2 :(得分:1)

将整数转换为字符串的安全方法如下:

#include <string>
#include <sstream>

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

由于上述原因,您当前的示例无效。