如何在c ++中连接字符串?

时间:2012-10-03 16:32:35

标签: c++ string-concatenation

string degreesToDMS(double angle) {
    int intpart = 0;
    int intpart2 = 0;
    int intpart3 = 0;
    return floor(angle) << "\xb0" << modf(angle, &intpart)*60 << "'" << modf(modf(angle, &intpart2), &intpart3)*60 << "\"";
}

此功能以度为单位,输出纬度。

我在return语句中遇到错误。如何在C ++中将不同的数据类型正确连接到字符串?

4 个答案:

答案 0 :(得分:3)

如果你想使用流媒体运营商,那么使用std :: stringstream,如下所示: -

string degreesToDMS(double angle)
{
  int intpart = 0;
  int intpart2 = 0;
  int intpart3 = 0;
  stringstream ss;
  ss << floor(angle) << "\xb0" << modf(angle, &intpart)*60 << "'" << modf(modf(angle, &intpart2), &intpart3)*60 << "\"";
  return ss.str ();
}

答案 1 :(得分:2)

您需要先在std::ostringstream中构建结果,然后从中检索字符串。

std::ostringstream ss;
ss << floor(angle) << "\xb0" << modf(angle, &intpart)*60 ...
return ss.str();

还有其他方法可以实现这一结果;例如,使用C ++ 11,您可以使用std::to_string将值转换为std::string,然后将它们连接在一起。

return std::to_string(floor(angle)) + "\xb0" + 
         std::to_string(modf(angle, &intpart)*60) + ...

答案 2 :(得分:1)

要在C ++中连接字符串,您只需在两个字符串上使用+ operator

如果您想将int转换为string,请使用stringstream

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

int main()
{
    string firstString = "1st, ";
    string secondString = "2nd ";

    string lastString  = firstString + secondString;

    int myNumber = 3;

    std::stringstream converANumber;
    converANumber << myNumber;

    lastString = lastString + converANumber.str();

}

答案 3 :(得分:1)

std::string result;
result += std::to_string(floor(angle);
result += "\xb0";
result += std::to_string(modf(angle, &intpart) * 60);
return result;

请注意,这需要C ++ 11获取std::to_string