#include #include #include #include #define LINESIZE 100 struct pizza { float price; char name[LINESIZE]; }; int search_string(const char* a, const char* b); int read_pizza(struct pizza* element); void transform(char* str); int main() { struct pizza jedalny_listok[5]; memset(jedalny_listok, 0, sizeof(struct pizza) * 5); int counter = 0; char line[LINESIZE]; memset(line, 0, LINESIZE); printf("Zadaj hladanu surovinu:\n"); fgets(line, LINESIZE, stdin); int len = strlen(line); if (len > 0 && line[len - 1] == '\n') { line[len - 1] = '\0'; // Odstráňye znak nového riadku } if (strlen(line) > 1) { printf("Zadaj jedalny listok:\n"); struct pizza element; while (read_pizza(&element)) { strcpy(jedalny_listok[counter].name, element.name); jedalny_listok[counter].price = element.price; counter++; if (counter >= 5) { break; } } } for (int i = 0; i < counter; i++) { char transformed_name[LINESIZE]; strcpy(transformed_name, jedalny_listok[i].name); transform(transformed_name); if (search_string(transformed_name, line) != -1) { printf("%s\n", jedalny_listok[i].name); printf("%.2f\n", jedalny_listok[i].price); } } printf("Nacitanych %d poloziek.\n", counter); return 0; } int search_string(const char* a, const char* b) { int c = strlen(b); int d = strlen(a); for (int i = 0; i <= d - c; i++) { int j; for (j = 0; j < c; j++) { if (a[i + j] != b[j]) { break; } } if (j == c) { return i; } } return -1; } int read_pizza(struct pizza* element) { char line[LINESIZE]; memset(line, 0, LINESIZE); if (fgets(line, LINESIZE, stdin) == NULL) { return 0; } int len = strlen(line); if (len > 0 && line[len - 1] == '\n') { line[len - 1] = '\0'; } if (line[0] == '\0') { return 0; } //if (line[1] == 0) { //return 0; //} char line2[LINESIZE]; memset(line2, 0, LINESIZE); if (fgets(line2, LINESIZE, stdin) == NULL) { return 0; } float value = strtof(line2, NULL); if (value == 0.0F) { return 0; } element->price = value; strcpy(element->name, line); return 1; } void transform(char* str) { for (int i = 0; str[i]; i++) { if (str[i] != '\n'){ switch (str[i]) { case '0': str[i] = 'o'; break; case '1': str[i] = 'i'; break; case '2': str[i] = 'z'; break; case '3': str[i] = 'e'; break; case '4': str[i] = 'a'; break; case '5': str[i] = 's'; break; case '6': str[i] = 'b'; break; case '7': str[i] = 't'; break; case '8': str[i] = 'b'; break; case '9': str[i] = 'q'; break; default: break; } } } }