C语言版Tokenize()函数,由分隔符获取字符串
测试环境:
操作系统: Windows10 64位
运行环境: Visual Studio 10
函数:
/***************************************************************
/* 函 数 名:Tokenize
/* 函数功能:C语言版Tokenize(),类似MFC/VC++中的CString类的方法
/* Tokenize(),搜索分隔符,返回分隔符前的字符串,每一次
* 搜索结束后uPos保存分隔符的下一个位置
/* 参 数:
/* str :源字符串
/* c :分隔符或者其他指定字符
/* uPos :搜索分隔符的起始位置,第一次从零开始
/* 返 回 值:
/* 返回分隔符前的字符串
/*
/* 依赖的头文件:
/* #include <stdlib.h>
/* #include <string.h>
/*
/* 作 者:X攻城狮
/* 日 期:2015年11月5日
/***************************************************************/
char* Tokenize(const char *str, const char c, unsigned int * const uPos)
{unsigned int uLen = strlen(str);if(*uPos >= uLen){return "";}char *strRet = (char *)malloc(uLen + 1 - *uPos);memset(strRet, 0, uLen+1);unsigned int i = *uPos;for(i=*uPos; i<uLen+1; i++){if(str[i] != c){strRet[i-*uPos] = str[i];}else{break;}}strRet[i-*uPos] = '\0';*uPos = i+1;return strRet;
}
测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>/***************************************************************
/* 函 数 名:Tokenize
/* 函数功能:C语言版Tokenize(),类似MFC/VC++中的CString类的方法
/* Tokenize(),搜索分隔符,返回分隔符前的字符串,每一次
/* 搜索结束后uPos保存分隔符的下一个位置
/* 参 数:
/* str :源字符串
/* c :分隔符或者其他指定字符
/* uPos :搜索分隔符的起始位置,第一次从零开始
/* 返 回 值:
/* 返回分隔符前的字符串
/*
/* 依赖的头文件:
/* #include <stdlib.h>
/* #include <string.h>/*
/*
/* 作 者:X攻城狮
/* 日 期:2015年11月5日
/***************************************************************/
char* Tokenize(const char *str, const char c, unsigned int * const uPos)
{unsigned int uLen = strlen(str);if(*uPos >= uLen){return "";}char *strRet = (char *)malloc(uLen + 1 - *uPos);memset(strRet, 0, uLen+1);unsigned int i = *uPos;for(i=*uPos; i<uLen+1; i++){if(str[i] != c){strRet[i-*uPos] = str[i];}else{break;}}strRet[i-*uPos] = '\0';*uPos = i+1;return strRet;
}int main()
{char strTest[1024] = "wer,qsd,54543,5345,dad,523fs,532rwt4,";char strResult[1024] = "NULL";unsigned int uPos = 0;while(strcmp(strResult,"")){strcpy(strResult, Tokenize(strTest, ',', &uPos));if(strcmp(strResult,"")){printf("返回结果:%s\n",strResult);} }return 0;
}
测试结果:
注:C语言中本身就有一个分割字符串的函数
原型
功能
说明
返回值
C语言版Tokenize()函数,由分隔符获取字符串相关推荐
- c语言分隔符分离出str字符串中的数字,C语言版Tokenize()函数,由分隔符获取字符串...
测试环境: 操作系统: Windows10 64位 运行环境: Visual Studio 10 函数: /********************************************** ...
- C语言中文件初始化,C语言版GetPrivateProfileString()函数,从初始化文件中指定的条目取得字串...
/*************************************************************** /* 函 数 名:GetPrivateProfileString /* ...
- 【SQL】sql版Split函数。用于拆分字符串为单列表格
[SQL]sql版Split函数.用于拆分字符串为单列表格 功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移 ...
- Swift3.0语言教程使用Unicode范式标准化获取字符串
Swift3.0语言教程使用Unicode范式标准化获取字符串 Swift3.0语言教程使用Unicode范式标准化获取字符串,在NSString中可以使用4个属性去使用Unicode范式标准化获取字 ...
- c++语言获得字符长度,c++怎么获取字符串长度?
C++获取字符串长度 strlen()函数 函数 strlen()是一个常规函数,他接受一个 C-风格字符串作为参数,并返回字符串包含的字符数. 参数必须是字符型指针(char*).当数组名作为参数传 ...
- c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)
c语言自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数) 程序流程图: 代码: #include<stdio.h> char strupr(char ch[ ...
- C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串
题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...
- (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s ...
- c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数
http://www.cnblogs.com/nio-nio/p/3309367.html /* // C prototype : void StrToHex(BYTE *pbDest, BYTE * ...
最新文章
- 主流mes厂商_MES为什么可以成为企业核心
- DNS 学习笔记之5- DNS区域详解
- SAP UI5 应用开发教程之五十七 - 基于 OData 注解的 Smart Field 使用方法学习试读版
- 十、最大熵模型与EM算法
- 《交互式程序设计 第2版》一3.6 关系比较
- 计算机系统结构结构相关实验报告,计算机系统结构实验报告.doc
- 1034 有理数四则运算 (20 分)java
- 今天的几点感悟_20160429
- 聚合登录平台网站源码
- NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems
- cnn在nlp应用中的调参建议
- 向窗口输入文字--TextOut和DrawText函数
- 用html5写个炫酷的3d电子相册
- 如何快速制作启动u盘
- android手势解锁代码,纯android代码实现九宫格手势密码
- linux usb有线网卡驱动_Linux USB网卡驱动安装
- 海域使用证换不动产证的步骤和注意问题
- openCV中sobel边缘增强
- Linux(Ubuntu 22.04)虚拟机共享主机上的文件夹
- Android AR ---HelloAR(用的EasyAR 免费版)
热门文章
- WPF 控件学习 之 容器控件
- freedownloadmanager 下载工具,代替 讯雷
- 怎么通过硬盘装linux系统文件下载,通过硬盘上的镜像文件安装Linux操作系统
- 【附源码】Java计算机毕业设计家居装修网站(程序+LW+部署)
- 平安车险计算器计算2020_人保和平安车险哪个好 人保和平安车险区别有哪些?...
- 教你怎么给心爱的她自动定时发送消息!超级简单!
- MapReduce NativeTask优化详解
- 冰雪之城鸿蒙碎片,冰雪之城——土豪玩法攻略
- 进了外包,职业生涯是不是就完了?
- 陈鸽:正统或异端_异端的制作:环境艺术