107 lines
2.9 KiB
C
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;
|
|
} |