`
wangangie29
  • 浏览: 42979 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

字符串分割函数

 
阅读更多

  最近与字符串打交道相对多些,C++最痛苦的地方就是对字符串的操作太麻烦了,繁琐。
  很多时候都会需要一个字符串分割函数,还可能是把诸如 "key1=value1 & key2=value2"形式的字符串分割称key/value对。
  一直没找到合适的函数,干脆自己造一个。
  函数如下,功能就是将"key1=value1 & key2=value2"形式的字符串分割称key/value对,
  比如字符串"key1=value1 & key2=value2 & key3=value3&"将被分割为:
  key1=value1 
  key2=value2 
  key3=value3
  并存储在map中。 typedef std::map STR2STR_MAP; typedef std::pair STR2STR_PAIR; // seq_major & sep_minor SHOULD NOT BE space(' ' or '\t') // the function will escape spaces around sep_major void SplitStrings(const std::string &input, STR2STR_MAP &map, char sep_major = '&', char sep_minor = '=') { char *euq, *amp, *start, *tmp; char *pairs = new char[input.size() + 4]; memcpy(pairs, input.c_str(), input.size()); memcpy(pairs + input.size(), &sep_major, 1); pairs[input.size()+1] = '\0'; start = pairs; for(amp = strchr(start, sep_major); amp != NULL; amp = strchr(start, sep_major)) { *amp = '\0'; euq = strchr(start, sep_minor); if(euq == NULL) break; *euq = '\0'; euq++; tmp = amp-1; while((tmp != start) && ((*tmp == ' ') || (*tmp == '\t'))) tmp--; // escape ending space while((*start == ' ') || (*start == '\t')) start++; // escape leading space if((start != '\0') && (*euq != '\0')) { std::string key(start), value(euq); map.insert(STR2STR_PAIR(key, value)); } start = ++amp; } delete []pairs; } 
分享到:
评论

相关推荐

    pb split() 字符串分割函数

    在这个场景中,我们关注的是一个名为"pb split()"的自定义字符串分割函数。在Python或者其他语言中,内置的`split()`函数可能不能满足所有需求,因此开发者有时会自定义类似功能的函数来适应特定项目或优化性能。 `...

    C++字符串分割函数+VC助手

    C++字符串分割源码,破解版VC助手,兼容多个windows版本

    php字符串分割函数用法实例

    本文实例讲述了php字符串分割函数用法。分享给大家供大家参考。具体分析如下: php中explode 和 split 函数用来分割字符串。 explode函数语法如下 explode(substring, string) explode函数通过子字符串进行分割,...

    自己编写的字符串分割函数-divide_str.m

    自己编写的字符串分割函数-divide_str.m 由于MATLAB没有字符串分割函数,所以自己就编写了一个: divide_str.m 举几个例子: >> str='ab ab ab'; >> divide_str ans =  'ab' 'ab'...

    delphi字符串分割函数整理

    ### Delphi字符串分割函数整理 在Delphi编程环境中,字符串处理是极其常见且重要的操作之一。对于字符串的分割尤其在数据解析、配置文件读取等场景下应用广泛。本文将详细整理并解释几种常用的字符串分割函数及其...

    SQL FUNCTION Split 字符串分割函数 的创建

    SQL FUNCTION Split 字符串分割函数 的创建,方法加实例

    Oracle拆分字符串,字符串分割的函数

    虽然这不是直接的字符串分割函数,但可以配合其他函数一起使用,实现字符串的拆分。 2. **SUBSTR() 函数** `substr()` 用于从字符串中提取指定长度的部分。例如,`substr(string, start_position, length)` 返回从...

    纯C 的字符串按指定分隔符 分割函数

    用c语言写的按照指定分隔符进行字符串分割的函数。针对char*可以获得完美的结果。使用方便。

    分割字符串函数 分割字符串函数

    这里,我们将深入探讨字符串分割函数的相关知识,包括其工作原理、常见用法以及在不同编程语言中的实现。 首先,让我们理解什么是分隔符。分隔符通常是一个字符或者一组字符,用来标识字符串中的边界。例如,在英语...

    C语言字符串分割函数

    将一个字符串按分割串分割为字符串数组。 在处理字符串方面有很好的参考价值

    SQL字符串分割

    2. **动态字符串分割函数**:另一种实现方式是使用动态SQL语句构建函数,例如`f_split`函数。它通过不断查找并替换分隔符,直到原字符串中不再包含分隔符为止,从而实现字符串的完全分割。这种方式特别适用于分割由...

    分割字符串函数

    给定的代码片段展示了如何在C#中实现字符串分割功能,并将其结果展示在一个列表框中。下面是对该代码的逐行分析: 1. **事件处理程序定义**: ```csharp private void btnSplit_Click(object sender, EventArgs e...

    vbs字符串分割函数

    在VBScript(Visual Basic Scripting Edition)中,处理字符串是一项常见的任务,而字符串分割函数则是这类任务中的一个重要工具。VBScript 提供了多种方法来处理字符串,包括 `Split` 函数,但在这个特定的情况下,...

    如何在c++中实现字符串分割函数split详解

    字符串分割函数split在C++中的实现详解 在C++中,实现字符串分割函数split是一项常见的任务,然而,C++标准库中并没有提供这样一个函数,本文将详细介绍如何在C++中实现字符串分割函数split,并提供了一个完整的...

    SQL语句 一个简单的字符串分割函数

    在SQL中,处理字符串是常见的任务之一,有时候我们需要将一个长字符串分割成多个部分,这时候就需要用到字符串分割函数。本文将详细介绍一个简单的SQL字符串分割函数的实现,并探讨其工作原理和使用方法。 标题提到...

    c语言中字符串分割函数及实现方法

    1、问题引入 自己在写一个linux下的模拟执行指令...2、自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a.c两个字符串、mv a.c b.c最后会被分割成mv和a.c和b.c三个字符串。 具体实现如下: #inc

    mysql分割字符串

    MySQL不提供内置的多分隔符字符串分割函数,但可以通过创建用户定义的函数(UDF)来实现。这通常涉及到C语言编程,将编译好的库文件导入到MySQL服务器。然而,对于简单的分割任务,可以考虑在应用程序层处理。 四、...

    c语言字符串分割函数strtok

    这个例子从文本文件ad9361.txt一行一行读取数据,通过spi设置寄存器值。支持命令读写:spidev_test -r F1 -w A0,-r参数表示寄存器地址,-w表示要写入的值,均为16进制(不要加0x开头)

    oracle-字符串去重函数

    传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考

    C语言字符串操作函数.docx

    #### 一、strtok() — 字符串分割函数 - **功能**:`strtok()` 函数用于将一个字符串按照指定的分隔符分割成多个子字符串,并返回第一个子字符串。 - **语法**: ```c char *strtok(char *str, const char *delim)...

Global site tag (gtag.js) - Google Analytics