易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ std::string 切词

用了三种方法...
#if 0
void StringTokenize(const std::string& strSrc, const std::string& strDelimit, std::vector<std::string>& vecSub)
{
if (strSrc.empty() || strDelimit.empty())
{
throw "tokenize: empty string\n";
}
vecSub.clear();

std::size_t nCurPos = 0;
std::size_t nNextPos = 0;
while ((nNextPos = strSrc.find_first_of(strDelimit, nCurPos)) != std::string::npos)
{
if (nNextPos - nCurPos > 0)
{
vecSub.push_back(strSrc.substr(nCurPos, nNextPos - nCurPos));
}
nCurPos = nNextPos + 1;
}
// Add the last one
std::string strLast = strSrc.substr(nCurPos);
if (!strLast.empty())
vecSub.push_back(strSrc.substr(nCurPos));
}
void StringToken(char *strToken, const char *strDelimit, std::vector<std::string>& vecSub)
{
assert(strToken && strDelimit && "Token, Delimit can not be NULL");
vecSub.clear();
char *pToken = strToken;
char *pNextToken = NULL;
pToken = strtok_s(pToken, strDelimit, &pNextToken);
while (pToken != NULL)
{
vecSub.push_back(pToken);
pToken = strtok_s(NULL, strDelimit, &pNextToken);
}
}
#endif
void StringTokenize(const std::string& strSrc, const std::string& strDelimit, std::vector<std::string>& vecSub)
{
if (strSrc.empty() || strDelimit.empty())
{
throw "tokenize: empty string\n";
}
vecSub.clear();
std::size_t nCurPos = 0;
std::size_t nNextPos = 0;
while ((nCurPos = strSrc.find_first_not_of(strDelimit, nNextPos)) != std::string::npos)
{
nNex


相关文档:

C/C++单元测试理论精要(六)

2.1 可测性问题详解(2)
   
    接下来我们讨论重点问题:覆盖输入。一个函数,输入会有哪些呢?输入包括两方面:外部输入,内部输入。外部输入容易理解,就是函数外部可以设定的输入,包括参数,全局变量,成员变量。
    
   
  &nb ......

C/C++文件操作

在C++中,可以使用多种方法对文件进行操作,如基于C的文件操作、基于C++的文件操作等等;
◆基于C的文件操作
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。
一.流式文件操作
这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:
 typedef struct {
i ......

C/S模式与B/S模式的比较分析

一、C/S模式与B/S模式的比较分析
  C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最 ......

Java与C++的多态

没有必要用一堆绕口的形容词来描述什么叫多态,只举出几个关键点。
    设:gun为父类,shootgun和pistol为gun的子类。
    Java:
    class gun {
        void shoot() {
          ......

C/C++中的64位整数(__int64 and long long)

  在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int
范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即
0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。
  那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号