如何使用C程序检测文件中的特定字符串
我有一个文件,我想读这个文件使用C程序使用文件操作。然后我想从该文件中获取参数。假设nalu_type=x。因此,每当我在该文件中检测到字符串nalu_类型时,我希望将值x放入由我定义的数组中。 请告诉我怎么做 提前谢谢如何使用C程序检测文件中的特定字符串,c,string,file,compare,C,String,File,Compare,我有一个文件,我想读这个文件使用C程序使用文件操作。然后我想从该文件中获取参数。假设nalu_type=x。因此,每当我在该文件中检测到字符串nalu_类型时,我希望将值x放入由我定义的数组中。 请告诉我怎么做 提前谢谢 Sanket这听起来有点像家庭作业,但这里有一个基本策略应该会有所帮助 您基本上只想将文件解析为文本。迭代地找到字符串nalu_type=的索引,然后得到后面的子字符串。缺少的部分是限定值x的部分。您至少需要知道结束分隔符是什么。如果格式是nalu\U type=x fsca
Sanket这听起来有点像家庭作业,但这里有一个基本策略应该会有所帮助
您基本上只想将文件解析为文本。迭代地找到字符串nalu_type=的索引,然后得到后面的子字符串。缺少的部分是限定值x的部分。您至少需要知道结束分隔符是什么。如果格式是nalu\U type=x
fscanf(fp, "%s", buf);
if !strcmp(buf, "nalu_type")
{
fscanf(fp, "%s", buf);
if ( ! strcmp(buf, "="))
fscanf(fp, "%s", buf);
else
printf("\n Not a valid format");
}
重复上述步骤,直到文件结束。我遇到分段错误。您能详细描述一下您的答案吗?@sunmoon-您在=符号周围添加了空格。原来的问题没有它们。如果没有空格,strstr可能是更好的选择。是否正在检查文件中第一个字符串中是否出现给定字符串?我想这是被跳过了。
# include<stdio.h>
# include <conio.h>
# include <string.h>
void main()
{
int noc=0,l;
FILE *fp;
char *str2,ch;
char*str1;
clrscr();
printf("Enter the String to be matched\n");
gets(str1);
l=strlen(str1);
fp=fopen("A.C","r");
while(1)
{
ch=fgetc(fp);
if(ch==EOF)
break;
else if(ch==' ')
{
fgets(str2,l+1,fp);
if((strcmp(str1,str2))==NULL)
noc++;
}
}
printf("NO of occurence is: %d",noc);
getch();
}