summaryrefslogtreecommitdiffstats
path: root/inf/rtk/2021-državno/1/prog.c
diff options
context:
space:
mode:
Diffstat (limited to 'inf/rtk/2021-državno/1/prog.c')
-rw-r--r--inf/rtk/2021-državno/1/prog.c30
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;
+}