Initial commit

This commit is contained in:
Gregory Campbell
2021-07-08 21:26:21 -04:00
commit 3f13c058be
7 changed files with 395 additions and 0 deletions
Executable
+109
View File
@@ -0,0 +1,109 @@
//Program Created by Gregory Campbell
//For class CIS*3190's Assignment 3
//Last updated: April 7th, 2017
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(){
//Declaration of variables
FILE *fp;
char file[100];
char line[256];
char word[100];
int wordLen = 0, lineLen = 0, correct = 0, count = 0;
int i,j, found = 0;
//Asking user for file name and pattern string
printf("Input the file you want to read from: \n");
scanf("%s", file);
printf("Input the word or pattern you want to search for: \n");
scanf("%s", word);
//Timing of program begins
clock_t begin = clock();
//Grab length of pattern string
wordLen = strlen(word);
//open file
fp = fopen(file, "r");
//Check if file exists, if not notify user and end program
if(fp){
printf("Match(s) found at character position: \n");
//Loop through all lines of the file checking for matches
//If a direct match is found the character position is printed
while (fgets(line, sizeof(line), fp)) {
if(strcmp(line, "\n") != 0){
lineLen = strlen(line);
//Each file line is loopeed through to see if an exact character match
//happens when compared to the pattern string
for(i = 0; i < lineLen; i++){
count++;
correct = 0;
if(line[i] == word[0] && i+wordLen < lineLen){
for(j = 0; j < wordLen; j++){
if(line[i+j] == word[j]){
correct++;
}
}
if(correct == wordLen){
printf("%d\n", count);
found = 1;
}
}
}
} else {
count++;
}
}
} else {
printf("Error: File not found.\n");
return 1;
}
//Prints if no matches are found
if(found == 0){
printf("No Match Found\n");
}
//File is closed and a second clock time is ran to
//calculate and display the full program run time in seconds
fclose(fp);
clock_t end = clock();
double timeSpent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("Total Time (seconds): %f \n", timeSpent);
return 0;
}