I
Hier eine kleine unvollständige Testimplementierung:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define SIZE 1000
int calcLeetSize(const char* str);
void text2leet(char* leet, const char* text);
int main () {
char str[SIZE];
printf("String eingeben: ");
fgets(str, SIZE, stdin);
// Schritt 2:
char *leet = (char*)calloc(calcLeetSize(str)+1,1);
text2leet(leet, str);
printf("Leet: %s\n", leet);
int i;
scanf("%i", &i);
return 0;
}
// Implementierung von Schritt1
int calcLeetSize(const char* str) {
int n;
for(n=0; *str; str++) {
switch(*str) {
case 'M':
n+=4; // M wird zu |\/|
break;
case 'N':
n+=3; // N wird zu |\|
break;
case 'R':
n+=2; // R wird zu |2
break;
// usw.
default:
n+=1;
}
}
return n;
}
// Schritt 3:
void text2leet(char* leet, const char* text) {
int i, j;
for(i=j=0; i < strlen(text); i++) {
switch(text[i]) {
case 'M':
leet[j++]= '|';
leet[j++] = '\\';
leet[j++] = '/';
leet[j++] = '|';
break;
case 'N':
leet[j++]= '|';
leet[j++] = '\\';
leet[j++] = '|';
break;
case 'e':
leet[j++]= '3';
break;
default:
leet[j++] = text[i];
}
}
}