如何用c语言筛选出txt中含有指定字符串的数据?
2018-03-10 20:58
323 查看
比如我有一个txt,里面的数据是
M3545 1111 222 4333
M1308 1134 433 2222
......
开头的五个字符下面都有很多重复的,我想从中筛选中所有开头为“M3545”的行,并存入另一个txt中,于是写了下面的程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2;
char num[128];
if((fp1=fopen("filename1.txt","r"))==NULL)
{
printf("cannot open fp1");
exit(0);
}
if((fp2=fopen("filename2.txt","w"))==NULL)
{
printf("cannot open fp2");
exit(0);
}
fgets(num,128,fp1);
while(fgets(num,128,fp1)>0)
{
char s[128]={0},a[100]={0},e[6]={' ','M','3','5','4','5'};
int i=0,n=0;
strncpy(s,num,6);
if(strcmp(s,e)==0)
strcpy(a,num);
fputs(a,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
可是为什么运行后得到的结果就是把第一行无限重复了QAQ
求指点!
M3545 1111 222 4333
M1308 1134 433 2222
......
开头的五个字符下面都有很多重复的,我想从中筛选中所有开头为“M3545”的行,并存入另一个txt中,于是写了下面的程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2;
char num[128];
if((fp1=fopen("filename1.txt","r"))==NULL)
{
printf("cannot open fp1");
exit(0);
}
if((fp2=fopen("filename2.txt","w"))==NULL)
{
printf("cannot open fp2");
exit(0);
}
fgets(num,128,fp1);
while(fgets(num,128,fp1)>0)
{
char s[128]={0},a[100]={0},e[6]={' ','M','3','5','4','5'};
int i=0,n=0;
strncpy(s,num,6);
if(strcmp(s,e)==0)
strcpy(a,num);
fputs(a,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
可是为什么运行后得到的结果就是把第一行无限重复了QAQ
求指点!
相关文章推荐
- C语言读取txt里面的图像数据字符串换成十六进制然后保存为bmp格式的图像文件
- MATLAB 读取txt含有字符串和数字的数据
- 如何用c语言读出 txt 文档中的数据到结构体中
- Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据
- matlab中如何读取TXT数据文件中指定行的数据?
- 如何用C语言提取含有大量数据文件的特定信息(包含16进制数据的提取)
- C语言sscanf()函数:从字符串中读取指定格式的数据&&C语言strtok()函数:字符串分割
- c语言如何将printf产生的数据写到txt文件中
- 利用matlab把指定字符串在原位置替换为新的字符串(替换txt文件中的部分数据)
- C语言sscanf()函数:从字符串中读取指定格式的数据
- c语言如何从txt文件读取数据
- C语言中文件操作--如何将文本数据正确读到字符串数组中
- c语言:返回指定字符在指定字符串中第n次出现的位置(从0开始计算)
- 如何正确把Oracle数据导出成Txt 的格式?
- Java中,当表单含有文件上传时,提交数据的如何读取
- 如何向数据库插入带有单引号(')的字符串?--在做数据插入是一定要考虑,否则有单引号系统就会报错
- 如何从oracle数据库的查询结果中,截取某个字段数据中含有“,”之前的数据
- excel中如何筛选重复数据
- 如何指定struts2返回我们需要的json类型数据?
- 有两个字符串数组,即 string1 与 string2,不使用任何C/C++库函数的情况下,请问如何交换这两个字符串数组中的数据