在编写程序是发现string.h中的strtok有些和想象的不同
比如对字符串“|2|”以"|"切分时,原以为会返回,第一为空字符串,第二个为2 ,第三个为空字符串。但是当使用时发现,第一为2,二、三均为NULL
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* split(const char *strToken,const char* strDelimit)
{
char *p;
char *pd;
static char *ps ;
if (strToken != NULL)
ps = strToken;
p = ps;
while (*ps != '\0 ')
{
pd = strDelimit;
while ( (*pd != '\0') && (*pd != *ps))
pd ++;
if (*pd == *ps)
{
*ps = NULL;
ps++;
return p;
}
else
ps++;
}
ps = NULL;
}
int main(int argc, char *argv[])
{
char str[10]="|2|";
char * first=strtok(str,"|");
char * second=strtok(NULL,"|");
char * third=strtok(NULL,"|");
printf("first:%s\n",first);
printf("second:%s\n",second);
printf("third:%s\n",third);
first=split(str,"|");
second=split(NULL,"|");
third=split(NULL,"|");
printf("first:%s\n",first);
printf("second:%s\n",second);
printf("third:%s\n",third);
system("PAUSE");
return 0;
}
打印结果
first:2
second:<NULL>
third:<NULL>
first:
second:2
thirsd:
分享到:
相关推荐
C++字符串分割源码,破解版VC助手,兼容多个windows版本
我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数...
* 使用一个字符串分割另一个字符串 * * @param delimiter 边界上的分隔字符 * @param haystack 输入的字符串 * @param out 输出的字符串指针 * @return 分割成了多少个成员 */ int explode(char *delimiter, ...
原字符串中包含浮点数、逗号、字符串、整数,长整型数等,本程序实现的是取出其中的浮点数和长整型数
C++字符串截取,例如:"adda,dagf,dfa,df",将','去除,将每部分字符出入一个指定数组
C语言strlen()函数:返回字符串的长度 头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int strlen (char *s); 【参数说明】s为指定的字符串。 strlen()用来计算指定的字符串s 的...
主要介绍了C语言切割多层字符串的方法,说了strtok的弱点,使用strtok_r的方法
前两个函数是输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数. (2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower, strtoupper,substr,ucfirst 这些是常用的字符串操作...
功能效果与strtok函数一样,但是效率极高,只要遍历一次字符串,就可以把字符串分割开,效率高于strtok
字符串相关函数介绍,strchr ,strstr,strtok
这个例子从文本文件ad9361.txt一行一行读取数据,通过spi设置寄存器值。支持命令读写:spidev_test -r F1 -w A0,-r参数表示寄存器地址,-w表示要写入的值,均为16进制(不要加0x开头)
strtok使用範例,可幫助C之初學者對程式學習上有些許幫助。 建議軟體VS 2005/2008
char *strtok(const char *strToken, const char *strDelimit) 将strToken中以字符串strDelimit进行分割.vs2010测试通过
1.字符串的拼接 使用c的函数char *strcat(char *str_des, char *str_sou); 将字符串str_sou接在字符串str_des后面(放在str_des的最后字符和“\0”之间)。 注意不要越界,可用strlen(input)函数求字符串长度之后再...
参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时 则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置...
经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:str为要分解的字符串...
strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok函数的用法strtok...
平时对字符串的操作的是很多的,了解下常用的字符串函数会使 c 编程变得很快捷!这里适当整理一下,方便以后参考。使用时,会用到大量指针的操作,注意加头文件: #include 一、str 系列 1.strtok ...
一、用 strtok 函数进行字符串分割 二、用 STL 进行字符串的分割 三、用 Boost 进行字符串的分割