stringex包括数字转换、格式化、替换、分割、编码转换等,扩展了STL中的string类,同时提供宽窄字符版本。
下载地址:http://download.csdn.net/detail/fdsdfdsf/7234811
部分示例代码(老版本):
std::string format(const char *fmt, ...)
{
va_list arg;
va_start(arg, fmt);
int len = _vscprintf_p(fmt, arg) + 1;
std::auto_ptr<char> buf(new char[len]);
_vsprintf_p(buf.get(), len, fmt, arg);
va_end(arg);
return buf.get();
}
std::string& replace(std::string &src, const std::string &old, const std::string &dest)
{
for(std::string::size_type i = src.find(old); i != std::string::npos; i = src.find(old, i + dest.length()))
{
src.replace(i, old.length(), dest);
}
return src;
}
std::vector<std::string> split(const std::string &src, const std::string &sep)
{
std::vector<std::string> ret;
std::string::size_type start = 0;
for(std::string::size_type i = src.find(sep); i != std::string::npos; i = src.find(sep, start))
{
ret.push_back(src.substr(start, i - start));
start = i + sep.length();
}
ret.push_back(src.substr(start, src.length() - start));
return ret;
}
template<typename T>
std::string tostring(const T &src, std::ios_base& (__cdecl *form)(std::ios_base&))
{
std::stringstream ss;
ss << form << src;
return ss.str();
}