test.txt中内容如下所示:

eth0||192.168.0.2-192.168.0.150
eth2||192.168.0.2-192.168.0.150

想要将其中的ip地址等解析出来:

#include <stdio.h>
#include <stdlib.h> int main(int argc, char *argv[])
{
int ret;
char buff[]; FILE *fp = fopen("./test.txt", "r");
if (fp == NULL) {
perror("fopen()");
return -;
} while (fgets(buff, sizeof(buff), fp) != NULL) {
char *ifname, *ipv4, *ip_addr_min, *ip_addr_max;
     //其中的m[^]|]起到了类似strstr的作用
ret = sscanf(buff, "%m[^]|]|%m[^]|]|%m[^]-]-%m[^]\n]", &ifname, &ipv4, &ip_addr_min, &ip_addr_max);
printf("ifname %s is ipv4 %s %s-%s\n", ifname, ipv4, ip_addr_min, ip_addr_max);
printf("%d\n", ret);
free(ifname);
free(ipv4);
free(ip_addr_min);
free(ip_addr_max);
} return ;
}

输出:

  ifname eth0 is ipv4 0 192.168.0.55-192.168.0.140
  4
  ifname eth2 is ipv4 1 192.168.0.2-192.168.0.150
  4

sscanf 解析字符串的更多相关文章

  1. NVelocity解析字符串

    之前都是先从模板文件里面读取html字符串,现在要求将模板存入数据库或缓存了,怎么办呢?在网上找了下资料,终于找到解决办法. 如下: public class NVelocityHelper { // ...

  2. sql 解析字符串添加到临时表中 sql存储过程in 参数输入

    sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneCol ...

  3. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  4. JSON解析字符串

    JSON解析字符串 JSON 解析字符串时,应按严格的标准,否则无法解析: str1 = '{"str":"string","number" ...

  5. java解析字符串拆分单独元素

    有时候,需求要求传递多个字符串参数,但是方法参数已经固定为单个String,笔者在学习unity和android之间的消息传递时就遇到这个问题,所以就写了这么一个解析字符串拆分单独元素的方法. 示例: ...

  6. sscanf在字符串中的一些使用

    弟弟的作业 你的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他检查一下.每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过 ...

  7. python,json解析字符串时ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

    今天写测试工具的时候,去excel取数据,用json解析字符串为字典时报错,后经调试,发现是单引号的原因,将单引号换位双引号即可 def getExcelValue_to_dic(filepath): ...

  8. Serilog 源码解析——解析字符串模板

    大家好啊,上一篇中我们谈到 Serilog 是如何决定日志记录的目的地的,那么从这篇开始,我们着重于 Serilog 是向 Sinks 中记录什么的,这个大功能比较复杂,我尝试再将其再拆分成几个小块方 ...

  9. 利用strstr和sscanf解析GPS信息

    比如说我们要做一个GPS导航的项目,需要读取GPS模块以ASCII码的形式发送过来的数据,然后对这些数据进行处理,提取我们需要的信息.这就涉及到很多操作字符串的问题.下面就以此为例,利用strstr函 ...

随机推荐

  1. 2017面向对象程序设计(JAVA)第3周学习指导及要求(2017.9.6-2017.9.12)

    学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定义类的基本使用方法,熟悉Math类.String类.math类.Scanner类.LocalDate类的常用 ...

  2. 输入框状态禁止enter键提交表单

    1:页面中如果存在input输入框和submit提交按钮时,默认按enter键会提交表单,如果我现在在做查询操作,一不小心按了enter键就会有提交表单的操作,这样显然是不合理的,所以我们要禁止按en ...

  3. IE 兼容background-size

    1:修改src *background-size: cover;//兼容ie的background-size filter: progid:DXImageTransform.Microsoft.Alp ...

  4. zookeeper 集群配置采坑 Connection refused WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@584] - Cannot open channel to 3 at election address slave2/192.168.127.133:3888

    坑一: Cannot open channel to at election address slave1/ java.net.ConnectException: Connection refused ...

  5. ssh架构之hibernate(五)hql语句狂练

    1.练习题 1.查询所有商品的名称[查询特定属性](只有一个参数的话可以使用List<String>接收数据)2.查询所有商品的名称和供应商[查询特定属性](多个参数可以使用List< ...

  6. sql 允许远程登录

    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges ...

  7. mysql中插入序列表

    利用序列表来实现列转行:CREATE TABLE sequence(id INT UNSIGNED NOT NULL auto_increment PRIMARY KEY)往里面插入数据 INSERT ...

  8. 【centos】centos中添加一个新用户,并授权

    前言 有时候给root用户不太方便,新建一个用于并赋予权限这个做法相对好些 创建新用户 创建一个用户名为:cmj [root@localhost ~]# adduser cmj 为这个用户初始化密码, ...

  9. echarts中间有字饼图Demo2

    echarts链接:http://gallery.echartsjs.com/editor.html?c=xHy2vIPzLQ 完整代码: option = { backgroundColor: 'b ...

  10. VS中,添加完Web引用(WebServer引用/Web服务引用),写代码时引用不到

    VS中,添加完Web引用(WebServer引用/Web服务引用),写代码时引用不到 添加完之后要等一会儿 等一会儿 等一会儿 就有了