usaa21/cv1/program.c
2021-11-25 23:18:48 +00:00

107 lines
2.9 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdbool.h>
struct unit{
char fixedName[50];
char brokenName[50];
char price[50];
};
char* fixWord(char* string){
int size = (int)strlen(string);
string[strlen(string)-1] = '\0';
for(int i = 0; i < size; i++){
if(isdigit(string[i])){
switch(string[i]){
case '1':
string[i] = 'i';
break;
case '2':
string[i] = 'z';
break;
case '3':
string[i] = 'e';
break;
case '4':
string[i] = 'a';
break;
case '5':
string[i] = 's';
break;
case '6':
string[i] = 'b';
break;
case '7':
string[i] = 't';
break;
case '8':
string[i] = 'b';
break;
case '9':
string[i] = 'q';
break;
case '0':
string[i] = 'o';
}
}
else{
string[i] = tolower(string[i]);
}
}
return string;
}
bool wordComparison(char* fixedName, char* ingredient){
int size = (int)strlen(fixedName);
int check;
if(strstr(fixedName, ingredient))
return true;
return false;
}
char* fixNumber(char* number){
char* finalNumber = (char*)calloc(50, sizeof(char));
float tempNumber = atof(number);
tempNumber = round(tempNumber*100)/100;
gcvt(tempNumber, round(tempNumber)+2, finalNumber);
return finalNumber;
}
int main(){
struct unit orders[50];
int numberOfOrder = 0;
int totalAmount = 0;
char* ingredient = (char*)calloc(50, sizeof(char));
printf("Zadaj hladanu surovinu:\n");
fgets(ingredient, 50, stdin);
ingredient = fixWord(ingredient);
printf("Zadaj jedalny listok:\n");
for(numberOfOrder = 0; fgets(orders[numberOfOrder].brokenName, 50, stdin); numberOfOrder++){
if(orders[numberOfOrder].brokenName[0] == '\n') totalAmount--;
fgets(orders[numberOfOrder].price, 50, stdin);
strcpy(orders[numberOfOrder].fixedName, orders[numberOfOrder].brokenName);
fixWord(orders[numberOfOrder].fixedName);
strcpy(orders[numberOfOrder].price, fixNumber(orders[numberOfOrder].price));
totalAmount++;
}
for(int i = 0; i < numberOfOrder; i++){
if(wordComparison(orders[i].fixedName, ingredient)){
printf("%s", orders[i].brokenName);
printf("%0.2f\n", atof(orders[i].price));
}
}
printf("Nacitanych %d poloziek.\n", totalAmount);
return 0;
}