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: 254
        
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