#include #include #include /* tolower */ #include /* memmove */ int MoznaGesla(char * g) { int l = strlen(g); /* za boljšo efektivnost najprej dobimo dolžino niza in jo shranimo, saj je konstantna */ for (int i = 0; i <= l; i++) { /* pred katerim znakom naj bo pika */ for (int j = 0; j < l; j++) { /* katera črka prvotnega gesla naj bo velika */ if (g[j] >= '0' && g[j] <= '9') /* številka ne more biti velika ali majhna, zato ta primer */ continue; /* izpustimo */ char * buf = malloc(l+1); /* naredimo buffer za niz, ki ga bomo natisnili */ strcpy(buf, g); /* skopiramo notri začetno geslo */ buf[j] = toupper(buf[j]); /* tole je bolj samoumevno, kakor če bi prišteli obskurno ascii vrednost */ char * pika = buf+i; /* kje naj bo pika */ memmove(pika+1, pika, (l+1)-i); /* umaknemo znake od in vključno z znakom, kjer bo pika, en znak v desno */ pika[0] = '.'; /* napišemo piko */ fprintf(stdout, "%s\n", buf); /* natisnemo niz */ free(buf); /* sprostimo buffer */ } } return 1; /* vrnemo se iz podprograma, po želji zamenjaj z while(1); če se bojiš vračanja iz podprogramov */ } int main (int argc, char ** argv) { if (argc < 1+1) { fprintf(stderr, "uporaba: %s \n", argv[0]); return 1; } MoznaGesla(argv[1]); /* glavna funkcija samo pokliče podprogram in kot parameter da prvi argument, začetno geslo za epl ajdi */ return 0; }