【C++标准头文件】<sstream>

sstream 定义了三个类:istringstream、ostringstream 和 stringstream 分别用来进行流的输入、输出和输入输出操作。

字符串拼接

std::stringstream ss;
//如果只有输入/输出,则使用单向stringstream
//std::ostringstream ss;

ss << "Happy " << "NewYear";
ss << " 2023!";

//result = "Happy NewYear 2023!"
std::string result = ss.str();

类型转换

  • 任意数值类型转换为 string
template<class Number>
std::string to_string(Number num) {
    std::ostringstream ss;
    ss << num;
    return ss.str();
}

void main(){
    //value1 = "1"
    std::string value1 = to_string(1);
    //value2 = "1.3"
	std::string value2 = to_string(1.3f);
}
  • string 类型转换为任意类型
template<class Number>
Number from_string(std::string str) {
    Number result;
    std::istringstream ss(str);
    ss >> result;
    return result;
}

void main(){
    //value1 = 1
	int value1 = from_string<int>("1");
    //value2 = 1.300000
	float value2 = from_string<float>("1.3");
    //value3 = 0.000000
	float value3 = from_string<float>("Happy");
}

strstream头文件

  • 头文件用于C风格的字符串,即 char* 这种风格,已被弃用,不建议使用
  • 头文件用于C++风格的字符串,即 std::string 这种风格

注意

  • 多次转换中重复使用同一个 stringstream(而不是每次都创建一个新的对象),在每次转换前使用clear()方法

你可能感兴趣的:(#,标准头文件,c++,c语言,linux,unix)