program.c

This commit is contained in:
an760cw 2023-09-27 20:43:23 +02:00
parent 4903b66204
commit fe7aa3af31

View File

@ -10,100 +10,64 @@ struct Menu{
float price;
};
int lower(char c) {
return (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9');
}
char transform(char c) {
switch (c) {
case '0': return 'o';
case '1': return 'i';
case '2': return 'z';
case '3': return 'e';
case '4': return 'a';
case '5': return 's';
case '6': return 'b';
case '7': return 't';
case '8': return 'b';
case '9': return 'q';
default: return c;
void transform(char *str) {
for (int i = 0; str[i]; i++) {
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;
}
}
}
int compare(const char *str1, const char *str2) {
int i = 0, j = 0;
while (str1[i] && str2[j]) {
char c1 = transform(str1[i]);
char c2 = transform(str2[j]);
if (str1[i] >= 'A' && str1[i] <= 'Z') {
str1[i] += 'a' - 'A';
}
if (str2[i]>= 'A' && str2[i] <= 'Z') {
str2[i] += 'a' - 'A';
}
if (c1 != c2) {
return 0;
}
i++;
j++;
}
return str1[i] == '\0' && str2[j] == '\0'; // Strings are equal
}
int main() {
char searchStr[100];
printf("Zadaj hladanu surovinu: ");
if (fgets(searchStr, sizeof(searchStr), stdin) == NULL) {
printf("Chyba pri citani vstupu.\n");
return 1;
}
char search[100];
int pizza = 0;
size_t len = strlen(searchStr);
if (len > 0 && searchStr[len - 1] == '\n') {
searchStr[len - 1] = '\0';
}
printf("Zadaj hladanu surovinu:\n");
fgets(searchStr, sizeof(searchStr), stdin);
search[strlen(search) - 1] = '\0';
struct MenuItem menu[100];
int menuSize = 0;
transform(search);
printf("Zadaj jedalny listok:\n");
printf("Zadaj jedalny listok:\n");
while (menuSize < 100) {
if (fgets(menu[menuSize].name, sizeof(menu[menuSize].name), stdin) == NULL) {
while (1) {
struct Menu menu;
char pizza_name[100];
if (fgets(pizza_name, sizeof(pizza_name), stdin) == NULL) {
break;
}
if (sscanf(menu[menuSize].name, "%f", &menu[menuSize].price) != 1) {
printf("Chyba pri citani ceny.\n");
return 1;
}
menuSize++;
}
}
pizza_name[strlen(pizza_name) - 1] = '\0';
printf("\nNájdené položky:\n");
int foundItems = 0;
for (int i = 0; i < menuSize; i++) {
if (strstr(menu[i].name, searchStr) || compareStrings(menu[i].name, searchStr)) {
printf("%s\n%.2f\n", menu[i].name, menu[i].price);
foundItems++;
char transformed_pizza_name[100];
strcpy(transformedpizza_name, pizza_name);
transform(transformed_pizza_name);
if (strstr(transformed_pizza_name, search) != NULL) {
// Načítanie ceny jedla
if (scanf("%f", &pizza.price) != 1) {
printf("Chyba pri nacitani ceny pre jedlo: %s\n", pizza_name);
return 1;
}
printf("%s\n", pizza_name);
printf("%.2f\n", pizza.price);
item++;
}
}
printf("\nNacitanych %d poloziek.\n", menuSize);
printf("Nacitanych %d poloziek.\n", item);
return 0;
}