场景:
1. 通常生成文件时需要一个文件名,而生成文件名的方式可能是通过用户输入的字符,但是有些字符在windows上是不能作为文件名的,强行创建这类文件会失败。
2.一般可以通过正则表达式替换所有的非法字符,这里实现的是C++98 template(模板)方式的替换无效字符,std::string,std::wstring. 基本上windows上和字符串打交道都离不开wstring....
分类:
编程语言 时间:
2014-12-19 23:29:20
阅读次数:
379
场景:
1. 很多情况下需要通过文件夹和文件名拼接文件路径字符串,每次都需要判断是否需要添加路径分隔符seperator很麻烦,所以可以写一个通用函数.
2. 大多数情况下都是windows使用wstring,mac使用string,所以用模版实现最通用....
分类:
移动开发 时间:
2014-12-19 23:27:02
阅读次数:
179
1. C++没有提供删除std::(w)string的前后空格的函数,比如TrimSpace.
2. 很多库都提供, 但是为了移植代码方便,最好还是能用标准库解决就用标准库....
分类:
编程语言 时间:
2014-12-17 16:30:51
阅读次数:
192
最近开发的语音识别的项目经常碰到转码的问题,各种宽窄字节转换,ASNI, UTF8, 宽字节 …… 代码写得冗长,繁琐,维护性太差了。决定自己写一个能直接使用各种编码的字符串类,于是实现了一个,功能不多,但是也够用。由于string 和 wstring 在多线程下共享数据会出问题,这里只用最基础的char 和 wchar_t。
基于Windows平台,代码如下
/*
********...
今天在写MFC的时候,发现MessageBox函数的类型是LPCTSTR,而我使用C++ STL的string类型却无法直接转,所以在网上找到一段函数,用于转化std::wstring StoWs(const std::string& s){ int len; int slength = (int)...
分类:
其他好文 时间:
2014-12-13 23:19:42
阅读次数:
264
源码 1 class Xml { 2 public: 3 typedef std::pair NodeT; 4 static std::vector parse(const std::wstring &xml) 5 { 6 std::vector result...
分类:
其他好文 时间:
2014-12-12 18:34:31
阅读次数:
202
学习记录:stl中 字符串 str自然对应的是string宽字符串wchar 对应的是wstring宽字符串占用两个字节两者的转换有三种办法1 windows 的api转换函数WideCharToMultiByte()与MultiByteToWideChar(). 不适合跨平台使用.2 ATL中CA...
分类:
其他好文 时间:
2014-12-04 23:02:11
阅读次数:
215
1 Unicode编码的字符串转换为数字类型 CString str;
str = _T("1234");
int i = _ttoi(str);
float f = _tstof(str); 2 数字转换为wchar_t wchar_t c[10];
int num = 100;
_itow_s(num,c,10,10进制);
wstring st...
分类:
其他好文 时间:
2014-12-03 14:35:07
阅读次数:
224
1. char*转换为wchar_t*char buf[] = "我是韩长鸣haizeiwanghancm"; wchar_t wbuf[100];1.1. C的方式:最可移植的方式1.1.1. mbstowcssetlocale(LC_CTYPE, ""); mbstowcs(wbuf, ...
分类:
其他好文 时间:
2014-11-26 18:15:23
阅读次数:
328
在C++中字符串类的string的模板原型是basic_stringtemplate,class_Ax=allocator>classbasic_string{}; 第一个参数_Elem表示类型。第二个参数traits的缺省值使用char_traits类型,定义了类型和字符操作的函数,如比较、等价....
分类:
编程语言 时间:
2014-11-04 16:57:22
阅读次数:
252