asma: fu, geht ned. gn8
[uebersetzerbau-ss10.git] / asma / main.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 extern unsigned char *asma(unsigned char *s);
6
7 unsigned char *asma_ref(unsigned char *s)
8 {
9         int i;
10         for (i=0; i<16; i++) {
11                 unsigned char c = s[i];
12                 c += (c >= 'A' && c <= 'Z') ? 'a'-'A' : 0;
13                 s[i] = c;
14         }
15         return s;
16 }
17
18 int main(int argc, char **argv) {
19         char *input1[]={"asdfABCDEFGHKL54", "foofuuMUHkk", "AbC"};
20         char *output1;
21         char *output2;
22         char *input2;
23         char *input3;
24         int i;
25
26         for(i = 0; i < 3; i++) {
27                 input2 = strdup(input1[i]);
28                 input3 = strdup(input1[i]);
29                 printf("input2: %p\n", input2);
30                 output1 = (char *)asma_ref((unsigned char *)(input2));
31                 output2 = (char *)asma((unsigned char *)(input3));
32
33                 printf("asma-output2: %p\n", output2);
34                 fflush(stdout);
35
36                 output1[16]='\0';
37                 output2[16]='\0';
38                 if(memcmp(output1,output2, 16)) {
39                         int j;
40                         printf("Testfall falsch; erwartet:\n\t\"%s\"\ntatsaechliches Ergebnis:\n\t\"%s\"\n", output1, output2);
41                         printf("0x");
42                         for(j = 0; j < 16; j++)
43                                 printf("%02X", output2[j]);
44                         printf("\n");
45                 } else {
46                         printf("Testfall \"%s\" passt.\n", output1);
47                 }
48                 printf("\n");
49
50                 free(input2);
51                 free(input3);
52         }
53
54         return 0;
55 }
56