#include #include #include extern unsigned char *asma(unsigned char *s); unsigned char *asma_ref(unsigned char *s) { int i; for (i=0; i<16; i++) { unsigned char c = s[i]; c += (c >= 'A' && c <= 'Z') ? 'a'-'A' : 0; s[i] = c; } return s; } int main(int argc, char **argv) { char *input1[]={"asdfABCDEFGHKL54", "foofuuMUHkk", "AbC", "BLA|MUHMKUH|KA"}; char *output1; char *output2; char *input2; char *input3; int i, j; int off[] = {2,0,0,0}; for(i = 0; i < 4; i++) { input2 = strdup(input1[i]); input3 = strdup(input1[i]); output1 = (char *)asma_ref((unsigned char *)(input2 + off[i])); output2 = (char *)asma((unsigned char *)(input3 + off[i])); output1[16]='\0'; output2[16]='\0'; printf("\n"); if(memcmp(output1,output2, 16)) { j = 0; printf("Testfall falsch; Input war: \"%s\"\n", input1[i]); printf("erwartet:\n\t\"%s\"\ntatsaechliches Ergebnis:\n\t\"%s\"\n", output1, output2); #if 0 printf("0x"); for(j = 0; j < 16; j++) printf("%02X", output2[j]); printf("\n"); #endif } else { printf("Testfall \"%s\" passt.\n", output1); } free(input2); free(input3); } return 0; }