c语言之split实现
来源:互联网 发布:那些直播软件有黄播 编辑:程序博客网 时间:2024/05/20 09:05
#include <stdlib.h>#include <string.h>int strsplit (const char *str, char *parts[], const char *delimiter) { char *pch; int i = 0; char *copy = NULL, *tmp = NULL; copy = strdup(str); if (! copy) goto bad; pch = strtok(copy, delimiter); tmp = strdup(pch); if (! tmp) goto bad; parts[i++] = tmp; while (pch) { pch = strtok(NULL, delimiter); if (NULL == pch) break; tmp = strdup(pch); if (! tmp) goto bad; parts[i++] = tmp; } free(copy); return i; bad: free(copy); for (int j = 0; j < i; j++) free(parts[j]); return -1;}void test001(){ char str[] = "hello\nworld\n1024"; char *parts[8]; size_t size = strsplit(str, parts, "\n"); int i = 0; for (; i < size; ++i) { printf("%s\n", parts[i]); }}void test002(){ char str[] = "Flight attendants of Chengdu Airlines take a photo in front of the regional jet ARJ21-700 at Chengdu Shuangliu International Airport in Southwest China's Sichuan province on June 28, 2016. [Photo/Xinhua]"; char *parts[1024]; size_t size = strsplit(str, parts, " "); int i = 0; for (; i < size; ++i) { printf("%s\n", parts[i]); }}void test003(){ char str[] = "hello\u4e2d\u65871024world\u4e2d\u65871024nihao\u4e2d\u6587"; char *parts[8]; size_t size = strsplit(str, parts, "1024"); int i = 0; for (; i < size; ++i) { printf("%s\n", parts[i]); }}void test004(){ char str[] = "hello中文1024world中文1024nihao中文"; char *parts[8]; size_t size = strsplit(str, parts, "中文"); int i = 0; for (; i < size; ++i) { printf("%s\n", parts[i]); }}//https://github.com/jwerle/strsplit.cint main (void) { //test001(); test003(); test004(); return 0;}
0 0
- c语言之split实现
- C语言实现Split函数
- c语言 split函数的实现
- C语言中用strstr()和strncpy()实现split()
- split c 实现
- C++:实现split分割字符串
- C++:实现split分割字符串
- C++:实现split分割字符串
- C++:实现split分割字符串
- C++:实现split分割字符串
- c/c++ 实现split函数
- C++:实现split分割字符串
- !--三子棋之C语言实现--!
- C语言实现字符串分割(类似vb中split函数)
- C语言中的字符串中的分隔---split
- 由编程珠玑字符串倒置问题拓展到split之C\C++实现
- C/C++实现split分割字符串
- MFC实现C#,java中的Split方法
- 问题:html中的select的options的用法?
- 【Head First Python-第六章-定制数据对象】学习笔记
- Android之adb shell dumpsys activity获取task里面的所有actitiy
- 团体程序设计天梯赛L2-003 月饼(贪心)
- android 吐丝、指示框
- c语言之split实现
- 中文分词算法研究
- 基础-encodeURI
- NSNotificationCenter通知基本用法(一)
- 对象创建,对象方法
- action
- poj3468(A simple Problem with Integers)(线段树成段增减)
- pl/sql 块和结构
- 94. Binary Tree Inorder Traversal