From 233adec10fe6ede1c26473b52c412c8aa65f4472 Mon Sep 17 00:00:00 2001 From: Alina Konoval Date: Sun, 28 Sep 2025 11:19:21 +0200 Subject: [PATCH] first commit --- du1/program | Bin 0 -> 16488 bytes du1/program.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ du1/vstup.txt | 7 +++++ 3 files changed, 77 insertions(+) create mode 100755 du1/program create mode 100644 du1/program.c create mode 100644 du1/vstup.txt diff --git a/du1/program b/du1/program new file mode 100755 index 0000000000000000000000000000000000000000..fda8aea8791ad2d32958cdb88692a329ff18d155 GIT binary patch literal 16488 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 +#include +#include +#include + +#define SIZE 100 + +typedef struct { + char name[SIZE]; + float price; +} Pizza; + +void strip_newline(char *s) { + size_t n = strlen(s); + n && s[n-1]=='\n' ? s[n-1]='\0' : 0; +} + +char normal_char(char c) { + char lc = tolower((unsigned char)c); + return (lc >= '0' && lc <= '9') ? "oizeasbtbq"[lc - '0'] : lc; +} + +void normal_str(const char *src, char *dst, size_t n) { + size_t i; + for (i = 0; src[i] && i + 1 < n; i++) dst[i] = normal_char(src[i]); + dst[i] = '\0'; +} + +int contains(const char *text, const char *pattern) { + size_t len_text = strlen(text), len_pat = strlen(pattern); + if (len_pat > len_text) return 0; + + for (size_t i = 0; i <= len_text - len_pat; i++) + !strncmp(text + i, pattern, len_pat) ? (void)(i = len_text) : 0; + + for (size_t i = 0; i <= len_text - len_pat; i++) + if (!strncmp(text + i, pattern, len_pat)) return 1; + return 0; +} + +int read_pizza(Pizza *p) { + char buf[SIZE]; + return (!fgets(p->name, SIZE, stdin) || !fgets(buf, SIZE, stdin)) + ? 0 + : (strip_newline(p->name), p->price = strtof(buf, NULL), 1); +} + +int main() { + char needle[SIZE], needle_norm[SIZE]; + Pizza p; + int total = 0; + + printf("Zadaj hladanu surovinu:\n"); + if (!fgets(needle, SIZE, stdin)) return printf("Nacitanych 0 poloziek.\n"), 0; + + strip_newline(needle); + normal_str(needle, needle_norm, SIZE); + + printf("Zadaj jedalny listok:\n"); + while (read_pizza(&p)) { + total++; + char name_norm[SIZE]; + normal_str(p.name, name_norm, SIZE); + contains(name_norm, needle_norm) ? printf("%s\n%.2f\n", p.name, p.price) : 0; + } + + printf("Nacitanych %d poloziek.\n", total); + return 0; +} + diff --git a/du1/vstup.txt b/du1/vstup.txt new file mode 100644 index 0000000..4210fa1 --- /dev/null +++ b/du1/vstup.txt @@ -0,0 +1,7 @@ +bryndz +8rynd20va P1zza +7.50 +Ja8lkov4 Pizza +6.50 +5penatov3 kal2on3 +8.20