手机
当前位置:查字典教程网 >编程开发 >C语言 >c语言中字符串分割函数及实现方法
c语言中字符串分割函数及实现方法
摘要:1、问题引入自己在写一个linux下的模拟执行指令的时候,遇到了输入"cata.c”,要将该字符串分解成cat和a.c两个单独的字符串,虽然...

1、问题引入

自己在写一个linux下的模拟执行指令的时候,遇到了输入"cat a.c”,要将该字符串分解成cat和a.c两个单独的字符串,虽然知道有strtok的存在,但是想自己尝试写一下,于是就自己写了一个,不过总是遇到这样或那样的问题,虽然最后调通了,不过确浪费了不少时间;后来作业交上去以后又仔细阅读了strtok函数,发现原来linux下已经改成strsep,所有在这里就写一下自己所走的过程。

2、自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a.c两个字符串、mv a.c b.c最后会被分割成mv和a.c和b.c三个字符串。

具体实现如下:

#include <stdio.h> #include<string.h> #define MAX_LEN 128 void main() { int i,length,ct=0,start = -1; char inputBuffer[MAX_LEN],*args[MAX_LEN]; strcpy(inputBuffer,"mv a.c b.c"); length=strlen(inputBuffer); for (i = 0; i <= length; i++) { switch (inputBuffer[i]){ case ' ': case 't' : /* argument separators */ if(start != -1){ args[ct] = &inputBuffer[start]; /* set up pointer */ ct++; } inputBuffer[i] = ''; /* add a null char; make a C string */ start = -1; break; case '': /* should be the final char examined */ if (start != -1){ args[ct] = &inputBuffer[start]; ct++; } inputBuffer[i] = ''; args[ct] = NULL; /* no more arguments to this command */ break; default : /* some other character */ if (start == -1) start = i; } } printf("分解之后的字符串为:n"); for(i=0;i<ct;i++) printf("%s n",args[i]); }

3、作业提交后又查询了strtok,发现使用strtok函数会方便很多

具体示例如下:

#include <stdio.h> #include<string.h> int main() { char str[] = "mv a.c b.c"; char *p; p = strtok(str, " "); while(p) { printf("%sn", p); p = strtok(NULL, " "); } return 0; }

4、在linux2.6.29以后的版本中,strtok被strsep代替了。

具体示例如下:

#include <stdio.h> #include<string.h> int main() { char str[] = "mv a.c b.c"; char *p; char *buff; buff=str; p = strsep(&buff, " "); while(p) { printf("%sn", p); p = strsep(&buff, " "); } return 0; }

而且在我自己的电脑的linux中的codeblog下,运行4中代码需要0.029s,而运行3中的代码需要0.044s,说明strsep速度确实比strtok快一些。

以上这篇c语言中字符串分割函数及实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持查字典教程网。

【c语言中字符串分割函数及实现方法】相关文章:

C语言调试手段:锁定错误的实现方法

解析bitmap处理海量数据及其实现方法分析

c语言中使用BF-KMP算法实例

深入C语言把文件读入字符串以及将字符串写入文件的解决方法

c语言中static的用法详细示例分析

用c语言实现HUP信号重启进程的方法

c语言swap(a,b)值交换的4种实现方法

用c语言根据可变参数合成字符串的实现代码

输入一个字符串,取出其中的整数(实现代码)

Java3D实例之创建空间几何模型的实现方法

精品推荐
分类导航