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 * ...
最新文章
- letswave7中文教程3:脑电数据预处理-ICA去除伪影
- mysql导出linux,linux下mysql导出导入方法
- Swoole 源码分析——Server模块之初始化
- 为什么使用NativeJdbcExtractor
- 清朝神秘女科学家,在国外火了200多年,我却对她一无所知…
- Dubbo(十四) dubbo的服务降级与集群容错
- 离阿里最近的机会,来了!
- input 标签左对齐
- 获取Access数据库字段的所有属性(转)
- P-Associated-URI
- 迪艾姆python培训视频
- ant-design tree 设置默认选中状态_[路由系列]5分钟设置一台Ubiquiti的ERX路由器
- Linux命令之md5sum
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- cp: omitting directory `XXX'问题解决
- python程序员推荐笔记本_震惊脸!这5个软件难道只有Python程序员才知道吗?
- openCv4Android之fitLine中各算法总结
- QPSK调制解调过程,包括串并转换,电平转换,载波调制,相干解调,抽样判决等
- 【数据结构】各种数据结构的特点介绍
- ElasticSearch(四):DSL Query