c语言如何对文件内容进行查询,C语言实现对一文件中的一段特定内容进行查询,并输出所在位置...

#include

#include

#include

int find(FILE* p_file, char* pStr)

{

int iPos = ftell(p_file);

char chBuff = 'a';

int iReadNum = 0;

for(pStr++;

iReadNum = fread(&chBuff, 1, 1, p_file), iReadNum && *pStr;

++pStr)

{

if (*pStr != chBuff)

{

fseek(p_file, iPos, SEEK_SET);

return 0;

}

}

if(!(*pStr))

{

return iPos;

}

if(iReadNum == 0)

{

fseek(p_file, iPos, SEEK_SET);

return 0;

}

}

void fun(char* pString)

{

FILE* p_file = fopen("test.txt", "a+b");

// 文件内容为121212123454574569

if(!p_file)

{

printf("打开文件失败\n");

return ;

}

char buf = 'a';

char char_arr[10];

strcpy(char_arr, pString);

int iPos = 0;

while( fread(&buf, 1, 1, p_file))

{

if(buf == char_arr[0])

{

if( iPos = find(p_file, char_arr))

{

printf("找到%s\t的位置为: %d\n", pString, iPos);

fclose(p_file);

return ;

}

}

}

printf("没有找到%s\n", pString);

fclose(p_file);

}

int main()

{

fun("123");

fun("bcd");

fun("23");

fun("456");

return 0;

}

5b5f792055215222e29d7df9f4196574.png

对于查找字符串的长度假设不会超过10.。这里不考虑越界问题。只看实现方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值