//************************************** // Name: Search a string from textfile // Description:Searches if a textfile contains a string that you specify. If matching string is found, the line# and the line, where your searchstring was found, will be printed to the screen. Searchstring is case sensitive. // By: Markku Kauppinen (from psc cd) // // // Inputs:filename as argv[1], and string to search as argv[2]. // // Returns:Line# and the line where the string was found. // //Assumes:None // //Side Effects:None //************************************** /************************************************************************* License : You're free to use this piece of code in your projects. But if you use it, drop me an email about it, or greet me in your project notes. *************************************************************************/ #include <stdio.h> #include <string.h> char searchstring(char*, char*); #define linelength 250 int main(int argc, char* argv[]) { if( argc != 3 ) { printf("Usage: search.exe <filename> \"<searchstring>\"\n"); return 1; } searchstring(argv[1], argv[2]); return 0; } char searchstring(char* filename, char* string) { FILE* file; char buffer[linelength]; int line=0; unsigned int x, y, u; if( (file = fopen(filename, "rb")) == NULL ) { printf("File read error!\n"); return 1; } while(1) { y = 0; u = 0; fgets(buffer, linelength, file); line++; if( feof(file) ) { break; } for(x = 0; x < strlen(buffer); x++) { if( buffer[y] == string[u] ) { y++; u++; if( u == strlen(string) ) { printf("Line %d: %s", line, buffer); } } if( buffer[y] != string[u] ) { u = 0; y++; } } } fclose(file); return 0; }