配置文件中“键=值”(key=val)字符串C语言解析
来源:互联网 发布:怎样从手机淘宝买东西 编辑:程序博客网 时间:2024/05/11 21:27
设有下面的配置文件(1.txt):
- # 简单的“键值”配置文件样例
- # 支持“=”和“:”两种赋值方式
- # ① 注释语句采用'#'符号顶格写
- # ② “键”为由数字或大小写字母组成的串,“值”不限制
- # ③ “键”及“值”两边可以有空格、制表符(\t)
- # ③ 配置文件中可以存在空行
- XYZ = 89
- abc : 1233
- Y = 78888
- N = 111ABC
- M= ABC222
- Name : Zhang_001
- Mail: Hello@gmail.com
- PosX: 1900
- PosY : 900
- Data = 7,999,000
解析程序(里面主要用到了sscanf函数):
- #include <stdio.h>
- #include <string.h>
- //
- // 删除一个字符串两端的空格
- //
- char *DelSpace(char *in);
- //
- // 【键】【值】数据结构定义
- //
- typedef struct
- {
- char key[50];
- char val[50];
- }KEY_VAL;
- void main()
- {
- //打开配置文件
- FILE *fp = fopen("1.txt", "r");
- if(!fp)
- {
- printf("配置文件读取失败\n");
- return;
- }
- //定义【键】【值】,但这里没有用到
- KEY_VAL kv[100];
- memset(kv, 0x00, sizeof(kv));
- char tmp[100]; //存放配置文件的每一行
- //
- // 解析配置文件
- //
- while (fgets(tmp, 100, fp))
- {
- //忽略注释语句
- if (tmp[0] == '#') continue;
- //忽略空行语句
- if (tmp[0] == '\n') continue;
- char key[50] = {0};
- char val[50] = {0};
- if (strstr(tmp, "="))//【key=val】样式
- {
- sscanf(tmp, "%[0-9a-zA-Z\t ]=%s", key, val);
- }
- else if (strstr(tmp, ":"))//【key:val】样式
- {
- sscanf(tmp, "%[0-9a-zA-Z\t ]:%s", key, val);
- }
- //去掉【key】【val】字符串两边的空格
- char *k = DelSpace(key);
- char *v = DelSpace(val);
- //显示
- printf("源串: %s\t键= %s, 值= %s\n\n", tmp, k, v);
- }
- fclose(fp);
- }
- //
- // 删除一个字符串两端的空格
- // 返回修改后的串,小心该函数会修改输入串
- //
- char *DelSpace(char *in)
- {
- char *out = NULL;
- char *p = in;
- while((*p == ' ')||(*p == '\t')) p++; //略去字符串前面的空格
- out = p; //保存输出串地址
- while(1) //略去字符串后面的空格
- {
- if (*p == ' ') break;
- if (*p == '\n') break;
- if (*p == '\0') break;
- if (*p == '\t') break;
- p++;
- }
- *p = '\0';
- return out;
- }
0 0
- 配置文件中“键=值”(key=val)字符串C语言解析
- 配置文件中“键=值”(key=val)字符串C语言解析
- 在C语言中解析json配置文件
- 在C语言中解析JSON配置文件
- C语言中配置文件解析案例
- C语言--配置文件解析
- 配置文件解析函数(C语言)
- 配置文件解析函数(C语言)
- C语言字符串解析
- 【语言-C++】Xml处理(chenlu1):UTF-8 的中文Key= 中文Value的解析()
- C语言面向对象编程(六):配置文件解析
- 一段解析字符串中单词的C语言小程序
- C语言字符串函数解析
- c语言解析XML字符串
- C语言字符串解析程序
- LUA解析配置文件-C语言调用
- c指针应用:键值对"key=value"字符串,在开发中经常使用
- 【c基础练习】c语言实现配置文件解析
- jenkins以及maven本地添加第三方jar
- Ubuntu SBT 加速 方案
- 红黑树的C++完整实现源码
- android:TableLayout表格布局详解
- Android之NDK开发
- 配置文件中“键=值”(key=val)字符串C语言解析
- 分布式云平台 中禅道的使用一(项目组长)
- 数据卸载--spool的使用
- UVa 10285 Longest Run on a Snowboard
- 相等运算符(==)和等同运算符(===)
- 数据录入窗口的通用写法[转载]
- EasyUi -- 如何根据动态加载panel和Datagrid
- meanshift目标跟踪总结
- 石子合并问题(动归)