1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
}
|