From 2ed6d21be97628699a5bf42922cf60c00523aab5 Mon Sep 17 00:00:00 2001 From: Ivan Leichenko Date: Mon, 30 Sep 2024 22:44:04 +0200 Subject: [PATCH] update program.c --- cv1/program.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/cv1/program.c b/cv1/program.c index e69de29..374b3f5 100644 --- a/cv1/program.c +++ b/cv1/program.c @@ -0,0 +1,110 @@ +#include +#include +#include +#include + +struct pizza +{ + char* name; + float price; +}; + +char* convert(char* input) +{ + int inplen = strlen(input); + char* res = (char*)malloc(inplen * sizeof(char*)); + memset(res,0,inplen); + for (int i = 0; i < inplen; i++) + { + switch (res[i]) + { + case '0': res[i] = 'o'; break; + case '1': res[i] = 'i'; break; + case '2': res[i] = 'z'; break; + case '3': res[i] = 'e'; break; + case '4': res[i] = 'a'; break; + case '5': res[i] = 's'; break; + case '6': res[i] = 'b'; break; + case '7': res[i] = 't'; break; + case '8': res[i] = 'b'; break; + case '9': res[i] = 'q'; break; + default: res[i] = tolower(res[i]); + } + } + return res; +} + +int search(char* find, int itemsc, struct pizza* menu) +{ + char* findtlw = convert(find); + for (int i = 0; i < itemsc; i++) + { + char* conved = convert(menu[i].name); + if(strstr(conved,findtlw) != NULL) + { + free(conved); + free(findtlw); + return i; + } + free(conved); + } + free(findtlw); + return -1; + +} + +int main() +{ + int itemc = 0; + char find[20]; + struct pizza menu[20]; + char buf[50]; + float price = 0; + memset(buf, 0, 50); + memset(find, 0, 20); + + printf("Zadaj hladanu surovinu:\n"); + fgets(find, sizeof(find), stdin); + + printf("Zadaj jedalny listok:\n"); + while (fgets(buf, 50, stdin) != NULL) + { + buf[strcspn(buf, "\n")] = '\0'; + + if (scanf("%f", &price) != 1) + { + break; + } + + getchar(); + + struct pizza piteml = + { + .name = (char*)malloc(strlen(buf) * sizeof(char*)), + .price = price + }; + + strcpy(piteml.name,buf); + + menu[itemc] = piteml; + + itemc++; + if (itemc >= 20) + { + break; + } + } + int item = search(find,itemc,menu); + if(item == -1) + { + return 0; + } + printf("%s\n%.2f\n", menu[item].name, menu[item].price); + printf("Nacitanych %d poloziek.", itemc); + for (int i = 0; i < itemc; i++) + { + free(menu[i].name); + } + + return 0; +} \ No newline at end of file