利用strstr与atoi的结合实现一个C语言获取文件中数据的工具

源代码如下:

#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int get_buf_data(char *buf,char *data)
{
	char *p1 =NULL,* p2=NULL;
	int num =0;
    p1 = buf;
    p2 = strstr(p1,data);
    if(p2 == NULL)
    {
        printf("%s no find  %s --- %s\r\n",__FUNCTION__ ,buf,data);
        return 0;
    }
    p1 = p2+strlen(data);
    num = atoi(p1);
	return num;
}
int main(void)
{
	int fd = -1 ;
	char buf[1024];
	fd =  open("build_mtk8127eng.sh",O_RDWR);
	if(-1 == fd)
	{
		printf("open fair!\n");
		return -1 ;
	}
	memset(buf,0,sizeof(buf));
	read(fd,buf,1024);
	close(fd);
	int num = get_buf_data(buf,"student_num:");
	printf("num:%d\n",num);
	return 0 ;
} 

运行结果:1000
对应的文件:

money_num:100
student_num:1000
work:12000

这里主要是要熟悉strstr这个函数,这个是字符串的查找函数,上面这个API就是首先返回查找到对应子串的首地址,然后返回给一个指针接受,后面用另一个指针加上获得刚刚返回子串地址的偏移到达这个子串的首地址,再利用strlen计算这个子串的长度再与首地址相加即得到下一个串,再利用atoi将该串转化为整型。

时间: 2024-12-02 18:07:50

利用strstr与atoi的结合实现一个C语言获取文件中数据的工具的相关文章

图片压缩-如何判断一个JPEG2000的文件中的每一个packet?

问题描述 如何判断一个JPEG2000的文件中的每一个packet? 最近在研究JPEG2000的图像格式,我发现一个问题.现在到这里来问问一下大神. 从理论上将,JPEG2000的image只要一些最基本的数据不丢失的话,其它部分的数据丢失的话,是不会影响太大的(除了resolution和qunlity的). 但是现在我想知道的问题是,我手头里有一个JPEG2000的格式的文件,我该如何知道它的哪一部分的数据是可以丢掉的啊? 解决方案 http://wenku.baidu.com/link?u

javascript jquery-jquery中getScript()的用法详解,从一个远程js文件中读取数据

问题描述 jquery中getScript()的用法详解,从一个远程js文件中读取数据 第一个html文件: <html> <head> <script type="text/javascript" src="jquery-2.1.3.js"></script> $.getScript("shuj.js",function(){alert("aaaaa");}) </hea

pb 压缩 多个文件-pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中

问题描述 pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中 在pb中如何将一个文件夹和一个文件压缩到一个zip压缩文件中,不要rar的,求高手 解决方案 可以用zlib来实现,参考以下链接 http://download.csdn.net/detail/distancehalf/3032693 或者调用winzip的命令行,通过run命令来实现

编程-给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数。

问题描述 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数. (在文件中至少缺失一个这样的数为什么?)括号里的话怎么得到的 在具有足够内存的情况下,如何解决该问题? 如果有几个外部的临时文件可以用,但是只有几百字节的内存,又该如何解决该问题. 解决方案 足够内存,用位图法.定义一个arr[4294967296]大小的数组,遍历顺序文件,遇到一个值,就把对应下标的置1,最后遍历这个数组,找0的元素. 解决方案二: 如果只有几百的内存,可以用hashtable.

利用JDK8的新特性计算某个目录下的文件中包含字符串的次数

需求:计算某个字符串在某个文件夹中出现的次数.**这篇文章利用了JDK1.8的新特性Stream流和Lambda表达式并结合了线程池的使用.** package com.zkn.fullstacktraining.seventh; import javafx.util.Pair; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; im

一个用配制文件连接数据库的Java工具类

大家用的时候只需要把配置文件里的内容改掉就可以啦! 配置文件Database.Property内容 jdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.url=jdbc:odbc:mydata jdbc.username=system jdbc.password=manager JAVABEAN文件内容 package community.database; import java.io.*; import java.util.*; import jav

打开一个Excel模板文件填充数据另存为一个文件

  string strFileName = Environment.CurrentDirectory+@"/template/template.tpl"; string strSaveFileName = Environment.CurrentDirectory+@"/excel/"+System.DateTime.Now.ToString().Replace(":","").Replace("-",&q

已知一个文本文件,如何确定一个词组在文件中是否有匹配?实在不会,苦求!

问题描述 是这样的,要求读取一片文本文件,然后再输入一些词来和文章匹配,如果含有此词,则匹配成功,确定文章重要,否则,则说明文章不重要,做了好久了,实在是不会了,请各位高手帮忙~~~ 解决方案 解决方案二:dimstringRightasstring="重要"'这个是你要匹配的字符PrivateSubButton5_Click_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton5.Clickdimlin

利用Python的Flask框架来构建一个简单的数字商品支付解决方案_python

作为一个程序员,我有时候忘了自己所具有的能力.当事情没有按照你想要的方式发展时,却很容易忘记你有能力去改变它.昨天,我意识到,我已经对我所出售的书的付款处理方式感到忍无可忍了.我的书完成后,我使用了三个不同的数字商品支付处理器,在对它们三个都感到不满后,我用Python和Flask,两个小时的时间写出了我自己的解决方案.没错!两个小时!现在,这个系统支撑着我的书籍付费流程,整个过程难以置信的简单,你可以在20秒内购买书籍并开始阅读. 往下看,看我是如何在一夜之间完成我自己的数字商品支付解决方案的