char ** strsplit(char *line, char delimeter, int *count, int limit)//line是传入字符串delimeter是用来进行分割的字符count是一个用来计数的变量,传入传出,函数执行完之后,表示将line分成的字符串个数limit用来限制分割次数,函数从左至右进行分割,如果值设置过大,表示不限制;例如limit=2,但line中有多个delimeter,则line也只分割一次,从第一个delimeter处分割开来!
#include <iostream>     // std::cout
#include<string>
using namespace std;char * strim(char *str)//去掉两端空格
{char *end, *sp, *ep;size_t len;sp = str;end = ep = str + strlen(str) - 1;while (sp <= end && isspace(*sp)) sp++;while (ep >= sp && isspace(*ep)) ep--;len = (ep < sp) ? 0 : (ep - sp) + 1;sp[len] = '\0';return sp;
}char ** strsplit(char *line, char delimeter, int *count, int limit)//
{char *ptr = NULL, *str = line;char **vector = NULL;*count = 0;while ((ptr = strchr(str, delimeter))) {*ptr = '\0';vector = (char **)realloc(vector, ((*count) + 1)*sizeof(char *));vector[*count] = strim(str);str = ptr + 1;(*count)++;if (--limit == 0) break;}if (*str != '\0') {vector = (char **)realloc(vector, ((*count) + 1)*sizeof(char *));vector[*count] = strim(str);(*count)++;}return vector;
}
int main() {char** res = NULL;int count = 0;char line[] = "wo*hello*world*love";//这儿如果是char* line,则表示line是一个指向常量字符串数组的首字符,不允许更改!!!res = strsplit(line, '*', &count, 3);while (count-->0){   cout << *res << endl;res++;}res = NULL;//注意,最后res已经越界了
system("pause");return 0;
}

char *strchr(const char* _Str,int _Val)
char *strchr(char* _Str,int _Ch)
头文件:#include <string.h>
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。
返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL
在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出现字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。

转载于:https://www.cnblogs.com/chess/p/5259654.html

字符串分割 函数实现相关推荐

  1. Split字符串分割函数

    非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg"Dim arrTest arrT ...

  2. strtok(), strtok_s() 字符串分割函数

    strtok(), strtok_s() 字符串分割函数 //strtok()函数原型/*_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s) _CRTIM ...

  3. C++的字符串分割函数

    转载:http://blog.csdn.net/shanzhizi/article/details/17189267 C++的字符串没有分割函数,因此需要自己写方便使用.而受到开发工具的影响,有很多用 ...

  4. php 字符串分割出数字,php 字符串分割函数的总结

    在php中字符串分割函数有很多很多,下面我来给各位朋友来介绍各种php中字符串分割实例,有需要的朋友可进入参考参考. PHP函数split()的基本语法为 array split ( string $ ...

  5. 小猿圈学习Python字符串操作--字符串分割函数

    对于长字符串,我们一般要怎么处理呢?除了切片,但是切片太麻烦了.python为我们提供了字符串切割函数,它不仅可以通过指定字符切割,也可以去除空格符哦.下面就看一下小猿圈Python讲师是怎么介绍Py ...

  6. 探索C语言之字符串分割函数:strtok和strsep的区别

    探索C语言之字符串分割函数:strtok和strsep的区别 概述 strsep - extract token from string(linux 下) strtok, strtok_r - ext ...

  7. php字符串分隔函数,php字符串分割函数的简单示例

    这篇文章主要为大家详细介绍了php字符串分割函数的简单示例,具有一定的参考价值,可以用来参考一下. 对php字符串分割函数感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! php中 exp ...

  8. php中的分割字符串函数,关于PHP中两款字符串分割函数explode,str_split

    关于PHP中两款字符串分割函数explode,str_split 2019.02.19 4140 将一个字符串分割成数组在日常的微信公众号开发中的应用应该是很多的.如果指定分割符,可以使用explod ...

  9. c语言中字符切割函数split,c 语言 指针 C语言字符串分割函数split实现

    c语言也有类似其他语言的split字符串分割函数,就是strtok使用方法如下://用逗号做分隔符,读出内容//char s[] = "123-sldkf-123ls-343434-dfjd ...

  10. c语言将字符串按空格分割_如何在c++中实现字符串分割函数split详解

    前言 在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割, ...

最新文章

  1. NLP --- 条件随机场CRF详解 重点 特征函数 转移矩阵
  2. mysql anyvalue报错_Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
  3. java.lang.StackOverflowError 解决方法
  4. 多传感器信息融合算法总结
  5. 点击输入框弹出文字html,jQuery实现点击文本框弹出热门标签的提示效果
  6. 标记页面区分渠道php,PM必懂的前端知识
  7. NCNE二级复习资料-网络监视、管理和排错
  8. “美登杯”上海市高校大学生程序设计赛B. 小花梨的三角形(模拟,实现)
  9. 前端学习(2047)vue之电商管理系统电商系统之使用cdn优化打包
  10. 【2015年第4期】大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(上)...
  11. java单点登录SSO教程(含源码和视频教程)
  12. rfid考勤系统mysql_RFID智能考勤管理系统
  13. 如何修改Notes邮箱中的收件箱标题宽度
  14. 在VS2017中添加WTL窗口
  15. 工信部下架96款侵害用户权益App、通报3款违规SDK
  16. (Java)2021年最新-王者荣耀游戏开发
  17. 合宙-icool 开发板使用手册
  18. 嵌入式开发笔记-STM32CudeIDE平台入门
  19. Immanuel Kant and Russell
  20. 杭电ACM2188题

热门文章

  1. Effective C#: Item 3: Prefer the is or as Operators to Casts
  2. DAZ studio 4.9基础
  3. 使用正则表达式的技巧
  4. hook_theme 的重要性
  5. POJ1182 食物链 —— 种类并查集
  6. 五)Spring + Quartz 复杂业务的两个问题:获取Spring上下文 和 自动注入服务类
  7. poj 1236 Network of Schools
  8. 二维傅里叶变换是怎么进行的?
  9. IOS UIPageControl的设置点为一张图片
  10. swift5 字符串格式化保留2 位,缺0自动补0