带分割符的参数提取 C语言
2016-07-27 00:14
369 查看
编译环境:VC 6.0++ ,Windows 10
函数原型arguments_separator(char *str,char separator);
参数说明:
注:由于空格也可以作为分隔符,因此若用其他符号做空格时,不得有多余的空格。若以空格作为分隔符,则可以随意插入空格
函数原型arguments_separator(char *str,char separator);
参数说明:
参数 | 作用 |
str | 带分隔符的参数字符串 |
separator | 分隔符 |
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <windows.h> #define MAXARG 5 #define MAXARGLENGTH 32 char args[MAXARG][MAXARGLENGTH]; void get_next_argument(char **str1,char *arg,char separator) { char *str = *str1; char *pstart = str; char *pend = str; char *test = strchr(str,separator); if(NULL == test) return; while(separator == pstart[0]) { ++pstart; if('\0' == pstart[0]) { *str1 = "\0"; return; } } pend = pstart+1; while(separator != pend[0] && '\0' != pend[0]) ++pend; strncpy(arg,pstart,pend-pstart); arg[pend-pstart+1]='\0'; // snprintf(arg,pend-pstart,"%s",pstart); *str1 = pend; } void arguments_separator(char *str,char separator) { int i=0; while(strlen(str)) { get_next_argument(&str,args[i++],separator); } } void main() { int i=0; arguments_separator(" 1003 1004 dsdsdsdsd 3434 dscdc12121212121 ",' '); for(;i<MAXARG;++i) printf("%s\n",strlen(args[i])==0?"format error!":args[i]); }
相关文章推荐
- Linux C函数参考手册(PDF版)
- C# partial关键字说明
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- C#用链式方法表达循环嵌套
- C#中的委托数据类型简介
- C#编写的艺术字类实例代码
- C#实现打造气泡屏幕保护效果
- 基于C#技术实现身份证识别功能
- 举例讲解C#编程中委托的实例化使用
- 使用C#代码获取存储过程返回值
- C和指针小结(推荐)
- C++中explict关键字用法
- C/C++数据对齐详细解析
- 利用C语言来求最大连续子序列乘积的方法
- 字符串的组合算法问题的C语言实现攻略
- C 语言基础教程(我的C之旅开始了)[三]
- 学习C和C++的9点经验总结
- C++中的extern “C”用法详解