#include #include #include #include #include "strpar.h" #define SERVER "localhost" #define BUFF 1000 #define MAX_WORDS 128 int main(int argc, char *argv[]) { CLIENT *client; STR_PARAM *param; int i; int count = 0; char *words[MAX_WORDS]; if (argc > 1) { /* zpracovani vstupu z prikazove radky */ for (i = 1; i < argc; i++) { words[i - 1] = (char *) malloc(strlen(argv[i]) + 1); strcpy(words[i - 1], argv[i]); } count = argc - 1; } else { /* zpracovani vstupu z aplikace */ printf("Zadejte vetu nebo seznam slov oddelenych mezerami,\n"); printf("slova lze take zadat jako argumenty programu,\n"); printf("neni-li zadano zadno slovo, pouzije se vychozi 'Hello world':\n> "); char b[BUFF]; fgets(b, BUFF, stdin); b[strlen(b) - 1] = '\0'; if (strlen(b) == 0) { strcpy(b, "Hello world"); } char *word; word = strtok(b, " "); while (word != NULL) { words[count] = (char *) malloc(strlen(word) + 1); strcpy(words[count], word); count++; word = strtok(NULL, " "); } } printf("\n"); /* postupne zpracovani vsech slov */ for (i = 0; i < count; i++) { /* vytvoreni spojeni */ if ((client = clnt_create(SERVER, STRPARAM, STRPARAM_VERSION, "udp")) == NULL) { clnt_pcreateerror(argv[0]); exit(0); } srand(time(NULL)); /* volani vzdalene funkce */ param = get_str_param_1(&words[i], client); if (param == NULL) { fprintf(stderr, "%s: %s\n", argv[0], "Vzdalene volani (get_str_param) selhalo."); exit(1); } printf("%s:\n delka slova = %d, rozdilnych pismen = %d, samohlasek = %d, souhlasek = %d\n\n", words[i], param->len, param->lcount, param->vowels, param->consonants); } /* dealokace pouzite pameti */ for (i = 0; i < count; i++) { free((void *) words[i]); } /* ukonceni spojeni */ clnt_destroy(client); return 0; }