利用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将该串转化为整型。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值