#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
template<typename T>
const char* to_string(T number)
{
std::stringstream ss;
ss<<number;
std::string str;
ss>>str;
return str.c_str();
}
template<typename T>
std::string to_string1(T number)
{
std::ostringstream ss;
ss << number;
return ss.str();
}
/*
*
* @brief 由字符串转换为所需类型
* to_value(x, "");
* x输出不一定为0
*
* @param T & value 所需类型
* @param const std::string & s 待转换的字符串
*/
template<typename T>
T& to_value(T& value, const std::string& str)
{
std::stringstream ss(str);
ss >> value;
return value;
}
/**
* @brief 分割字符(以单个符号为间断)like: 1,2,3 or 1;2;3 or aa/b/cc ...
*
* @param std::vector<T> & dst_result 分割后的结果
* @param std::string & src_str 待分割的字符串
* @param 分割依据符号
* /
template <typename T>
void cat_string(std::vector<T>& dst_result, std::string& src_str, char tag)
{
std::stringstream ss(src_str);
std::string sub_str;
while(std::getline(ss, sub_str, tag)){
//以tag为间隔分割str的内容
T i;
to_value(i,sub_str);
dst_result.push_back(i);
}
}
int main()
{
float a = 100.111;
cout<<to_string1(a)<<endl;
string str = "110.12";
cout<<to_value(a, str);
return 0;
}
string转换和分割
最新推荐文章于 2023-07-15 20:57:24 发布