aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoikk2021-09-07 20:55:07 +0200
committerSoikk2021-09-07 20:55:07 +0200
commit6643bfb1f0bfed3feca3e38d560a45a968d20214 (patch)
treedc90e56298ec0ece1c0c3075f9d0842c3dbc94b3
parent0d7d0daa4faede946c1c5872ef335c34dde86537 (diff)
downloadsoikk-wordfinder-6643bfb1f0bfed3feca3e38d560a45a968d20214.tar.xz
soikk-wordfinder-6643bfb1f0bfed3feca3e38d560a45a968d20214.tar.zst
Minor fixes
Added count of total occurrences found. Fixed bug not displaying file names when files not found
-rw-r--r--wordfinder.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/wordfinder.c b/wordfinder.c
index 71e3a5c..eb4c57c 100644
--- a/wordfinder.c
+++ b/wordfinder.c
@@ -59,27 +59,32 @@ void addNode(dataHead *head, Data *data){
}
}
-void printLineData(lineData lineData){
+int printLineData(lineData lineData){
for(int i = 0; i < lineData.occurrences; i++){
printf("\t\t-At position %d\n", lineData.positionList[i]);
}
+ return lineData.occurrences;
}
-void printData(Data data){
+int printData(Data data){
+ int count = 0;
printf("Found \"%s\" in %d line%s:\n", data.name, data.lines, (data.lines>1)?"s":"");
for(int i = 0; i < data.lines; i++){
printf("\t-At line %d:\n", data.lineList[i].lineNumber);
- printLineData(data.lineList[i]);
+ count += printLineData(data.lineList[i]);
}
+ return count;
}
-void printNodes(dataHead head){
+int printNodes(dataHead head){
+ int count = 0;
dataNode *node = head;
while(node){
- printData(*node->data);
+ count += printData(*node->data);
node = node->next;
}
free(node);
+ return count;
}
size_t getLineCount(FILE *fp){
@@ -117,8 +122,8 @@ int main(int argc, char **argv){
char *docName = argv[1], *listName = argv[2];
FILE *document = fopen(docName, "r"), *list = fopen(listName, "r");
- if(!document) printf("Error: \"%s\" not found\n", document);
- if(!list) printf("Error: \"%s\" not found\n", list);
+ if(!document) printf("Error: \"%s\" not found\n", docName);
+ if(!list) printf("Error: \"%s\" not found\n", listName);
if(!document || !list){
return 0;
}
@@ -154,7 +159,7 @@ int main(int argc, char **argv){
addNode(&head, data);
}
}
- printNodes(head);
+ printf("\n%d total occurrences found\n", printNodes(head));
free(head);
free(fdocument);