From 696ae85a536b6d0c33d39ee86901607208562659 Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Mon, 16 May 2022 21:16:16 -0400 Subject: predictor: replace bottleneck with c program --- quick5.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 quick5.c (limited to 'quick5.c') diff --git a/quick5.c b/quick5.c new file mode 100644 index 0000000..7391a77 --- /dev/null +++ b/quick5.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include + +#define BUFSIZE 1024 +char wordBuff[BUFSIZE]; + +// fgets, but without the newline/tab. +char *fgetst(char *restrict s, int size, FILE *restrict stream) { + char *r = fgets(s, size, stream); + if (r) { + char * sp = s; + for(; sp[0] != '\0'; sp++) { + if (sp[0] == '\n' || sp[0] == '\t') { + sp[0] = '\0'; + } + } + } + return r; +} + +bool strdif(char* a, char* b) { + for (;a[0];) { + if (tolower(a[0]) != tolower(b[0])){ + return true; + } + a++; + b++; + if (!b[0])return true; + } + return false; +} + +int main(int argc, char **argv) { + if(argc!=2)return 1; + int found = 0; + size_t len = strlen(argv[1]); + + while (found < 5 && fgetst(wordBuff, BUFSIZE, stdin)) { + if (!strdif(argv[1], wordBuff)) { + if (found > 0) printf("\t"); + printf("%s", wordBuff+len); + found++; + } + } + printf("\n"); + return 0; +} -- cgit 1.4.1