diff options
Diffstat (limited to 'inf/rtk/2021-državno/1/prog.c')
-rw-r--r-- | inf/rtk/2021-državno/1/prog.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/inf/rtk/2021-državno/1/prog.c b/inf/rtk/2021-državno/1/prog.c new file mode 100644 index 0000000..30b2924 --- /dev/null +++ b/inf/rtk/2021-državno/1/prog.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> +#include <ctype.h> /* tolower */ +#include <string.h> /* 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 <začetno geslo za epl ajdi>\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; +} |