c - 在C语言的文本文件中查找字符串

标签 c string file

我正在尝试使用 C 在文本文件中搜索始终位于特定位置的字符串。具体来说,我正在寻找三个连续的破折号。当它找到三个破折号时,它应该返回找到它的那一行。然后它应该继续到下一行并继续搜索三个连续的破折号,直到到达文件末尾。每次都应该打印行号。

这是我目前所拥有的:

int main() {
FILE *f;
char inName[80];
printf("Read text from: ");
scanf(" %79[^\n]s\n", inName);

f  = fopen(inName, "r");
if (f == 0) printf("ERROR: Cannot open file %s for reading.\n", inName);
int lineNumber = 0;

for(;;) {       
    char line[127]; 
    fgets(line, 127, f);
    if (!feof(f)) { 
        lineNumber++;
    } else {
        break;
    }

    double lf;  
    int d, d1;
    char s[30];
    char s1[4];

    sscanf(line, " %d, %s, %s, %s, %s, %d, %d, %lf",
                   &d, &s, &s, &s, &s, &d, &s1, &lf);
    if (s1 == "---") {
        printf("%d\n", lineNumber); // what line 
    }
}
fclose(f);

return(0);
}

此代码运行但不打印任何内容。谁能展示如何完成这项工作?谢谢:)

最佳答案

if (s1 == "---")

你以错误的方式比较字符串,你应该使用 strcmp()

按照这个例子 http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1057537653&id=1043284385

关于c - 在C语言的文本文件中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200420/

相关文章:

java - 检查输入的字符串长度是否等于三

c - 从函数返回 char[]/string

php - 输出文件时 "echo" block 有什么好处?

image - 如何在 C++ 中使用 GDI+ 获取图像文件类型?

php - 检查字符串是否包含几个单词之一

c - extern 关键字对 C 函数的影响

c - "struct a a1 = {0};"不同于 "struct a a2 = {5};"为什么?

c++ - 如何在写入发生之前获得文件更改的通知?

delphi - libxml2 xmlParseFile无法加载格式正确的XML

c - C 函数(fgets、scanf、fread、fwrite、fopen)的未知行为