c 字符串过滤行

c 字符串过滤行,第1张

先把文本的内容逐行读取,利用字符串匹配函数查找该行是否有"file",无则输出到out.txt文件,有则忽略不计

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

bool Hasfile(char *str)

{

    if(strlen(str) <= 4)

        return false

    for(int i = 0 i <= strlen(str)-4 ++i)

    {

        if(strncmp("file", str+i, 4) == 0)

            return true

    }

    return false

}

int main()

{

    char txtname[50] = {'\0'}

    char buf[128] = {'\0'}

    scanf("%s", txtname)        //    输入源文本文件名,如 a.txt 

    FILE *fp1, *fp2

    

    if((fp1 = fopen(txtname, "r")) == NULL 

    || (fp2 = fopen("out.txt", "w+")) == NULL)

    {

        printf("Error!\n")

        exit(1)

    }

    

    while(!feof(fp1))

    {

        memset(buf, 0, sizeof(buf))

        fgets(buf, sizeof(buf)-1, fp1)

        if(!Hasfile(buf))

            fprintf(fp2, "%s", buf)

    }    

    printf("已将过滤结果输出至 ./out.txt\n") 

    return 0

}

持续读入字符直到*/符号这个过程,LZ你忘记持续读入字符了。

while(!feof(cPtr))

{

if(ch=='*'){

ch=fgetc(cPtr)

if(ch=='/')

{

break

}}

//添加读入字符

else ch = fgetc(cPtr)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6064840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存