string::npos 速成 及其在自定义split函数中的应用

string::npos的定义:

static const size_t npos = -1;

表示size_t的最大值(Maximum value for size_t)

C++中并没有拆分字符串函数,但是在刷题时经常遇到要拆分字符串的情况, 故编写一个自定义的split函数。

r:egmkang

void SplitString(const std::string& s, std::vector<std::string>& v, const std::string& c)
{
  std::string::size_type pos1, pos2;
  pos2 = s.find(c);
  pos1 = 0;
  while(std::string::npos != pos2)
  {
    v.push_back(s.substr(pos1, pos2-pos1));

    pos1 = pos2 + c.size();
    pos2 = s.find(c, pos1);
  }
  if(pos1 != s.length())
    v.push_back(s.substr(pos1));
}

参考http://blog.csdn.net/devil_pull/article/details/25478525?utm_source=tuicool&utm_medium=referral

原文地址:https://www.cnblogs.com/AbsolutelyPerfect/p/8410649.html

时间: 2024-08-14 11:01:38

string::npos 速成 及其在自定义split函数中的应用的相关文章

python中的split函数中的参数问题

第一个参数代表的是分割符号,第二个参数表明是split次数. 用下面这个例子测试: str = 'server=mpilgrim&ip=10.10.10.10&port=8080'print str.split('=', 1)[0]print str.split('=', 1)[1]print str.split('=')[0]print str.split('=')[1] 结果是: servermpilgrim&ip=10.10.10.10&port=8080server

RxJava 驯服数据流之自定义操作函数

RxJava 提供了很多操作函数.加上各种重载函数,一共有 300 多个操作函数.这些函数中只有很少一部分是核心的操作函数,离开这些核心的函数根本就没法使用 RxJava 了.其他的大部分函数只是一些便捷函数,方便开发者使用,并且他们的名字基本都说明了他们的用法.比如 如果操作函数 source.First(user -> user.isOnline()) 不存在,则我们依然可以使用 source.filter(user -> user.isOnline()).First() 来实现同样的功能

EntityFramework Core 2.0自定义标量函数两种方式

前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将方法映射到数据库中的标量函数,我们可在LINQ中调用此方法并会被正确翻译成SQL语句,这为编写数据访问层的开发人员提供了一个很棒的功能来创建一个方法并在其上应用DbFunction特性即可.该属性会将静态CLR方法映射到数据库函数,以便可以在LINQ查询中使用此方法.默认情况下,数据库函数中的CLR

perl:split函数用法

本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上. Perl split函数 Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上. Perl split函数可以这样使用: $inf

字符串的查找删除---C++中string.find()函数与string::npos

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串 输入: 输入只有一组数据 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止 输出: 删除输入的短字符串(不区分大小写)并去掉空格 #include <stdio.h> #include <string> #include <iostream> #include <ctype.h> using namespace std; int main() { char st

Java——String.split()函数

在java doc里有 String[] java.lang.String.split(String regex) Splits this string around matches of the given regular expression. This method works as if by invoking the two-argument split method with the given expression and a limit argument of zero. Tra

java String.split()函数的用法分析

在java.lang包中有String.split()方法的原型是:public String[] split(String regex, int limit)split函数是用于使用特定的切割符(regex)来分隔字符串成一个字符串数组,函数返回是一个数组.在其中每个出现regex的位置都要进行分解.需要注意是有以下几点:(1)regex是可选项.字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符.如果忽略该选项,返回包含整个字符串的单一元素数组.(2)limit也是可选项.

String.Split()函数

我们在上次学习到了 String.Join函数(http://blog.csdn.net/zhvsby/archive/2008/11/28/3404704.aspx),当中用到了String.SPlit函数,所以能够上网查了该函数的用法 例如以下: #中使用string.Split方法来切割字符串的注意事项:string.Split给我们提供了非常灵活的使用方式, 可是假设使用不当, 会造成错误, 近期在做code review时, 看到大部分人这么使用:            string

Scala中String.split函数

今天在写一个统计用户信息的程序时出现了bug,导致统计的结果根真实值有很大的差距.经过仔细检查以后,我发现时对scala中的split函数的理解不够透彻导致的.下面我讲详细解释split的参数及用法. 因为scala中的String复用了Java的String,因此这也是Java中String.split的用法. split函数主要有两种参数形式: def split(arg0: String): Array[String] def split(arg0: String, arg1: Int):