Search string in file (C)

Posted by chutsu on Stack Overflow See other posts from Stack Overflow or by chutsu
Published on 2010-03-24T13:18:27Z Indexed on 2010/03/24 13:23 UTC
Read the original article Hit count: 218

Filed under:
|
|
|

So my code isn't working...

test.c:27: warning: passing argument 1 of ‘search’ from incompatible pointer type

which is the fgets line.

My code opens a file, reads the file line by line, and I'm trying to create a "search" function that will return a value that indicates whether that string is found on that line of the file.

My ultimate goal is to achieve a search and replace program. But one step at a time eh? this is what I have so far:

#include <stdio.h>
#include <string.h>

int search(const char *content[], const char *search_term)
{
    int t;

    for(t=0; content[t]; ++t){
        if(!strcmp(content[t], search_term)){
            return t; // found
        }
    }
    return 0; // not found
}


int main(int argc, char *argv[])
{
    FILE *file;
    char line[BUFSIZ];
    int linenumber=0;
    char term[20] = "hello world";

    file = fopen(argv[1], "r");
    if(file != NULL){
        while(fgets(line, sizeof(line), file)){
            if(search(line, term) != -1){
                printf("Search Term Found!!\n");
            }
            ++linenumber;
        }
    }       
    else{
        perror(argv[1]); 
    }

    fclose(file);
    return 0;
}

© Stack Overflow or respective owner

Related posts about c

    Related posts about array