Ich bin neu in C, bitte verzeih mir meine Missverständnisse. Ich versuche, ein einfaches Programm zu schreiben, das eine Benutzerzeicheneingabe nimmt, es mutiert und es in "piglatin" ausdruckt ... wo der erste Buchstabe eines Wortes zum Ende des Wortes und dann ein "ay" bewegt wird ist an das Ende des Wortes angehängt. Beispiel-> das Wort "wie" wird ... "ikelay". Hier ist mein Programm ...Das Programm wird nicht mit EOF beendet und nicht gedruckt, wenn das letzte Zeichen '[Leerzeichen]' ist.
//pig latin
#include <stdio.h>
#define MAX 1000
void pigify(char chars[], int cnt);
void sortWords(char stream[], int total);
void clearWord(char word[], int j);
int main(){
int c, i;
char allChars[MAX];
i = 0;
while((c = getchar()) != EOF){
allChars[i] = c;
++i;
}
allChars[i] = '\0';
sortWords(allChars, i);
return 0;
}
/////////////////
/////////////////
void sortWords(char stream[], int total){
int i, j, start, end, m;
char words[total];
clearWord(words, total);
i = j = end = m = 0;
while(stream[i] != '\0'){
if(stream[i] != '\n' && stream[i] != '\t' && stream[i] != ' '){
++i;
++j;
} else if (j > 2){
end = i;
for(start = i-j; start <= end; ++start){
words[m] = stream[start];
++m;
}
pigify(words, m);
clearWord(words, m);
j = m = 0;
}
}
}
/////////////////
/////////////////
void clearWord(char word[], int i){
int j;
for (j = 0; j <= i; ++j){
word[j] = '\0';
}
}
/////////////////
/////////////////
void pigify(char alls[], int cnt){
int j;
char pchars[cnt+3];
j = 0;
while(alls[j] != '\0'){
pchars[j] = alls[j];
++j;
}
if(alls[0] != 'a' && alls[0] != 'e' && alls[0] != 'i' && alls[0] != 'o' && alls[0] != 'u'){
pchars[cnt] = alls[0];
pchars[cnt+1] = 'a';
pchars[cnt+2] = 'y';
pchars[cnt+3] = '\0';
pchars[0] = ' ';
}
printf("\npost pigification --> %s\n", pchars);
}
Ich bin schon lange darauf und ich kann nicht finden, wo ich einen Fehler gemacht habe. Das Programm interessiert mich nicht so sehr, ich muss den Input nicht in "piglatin" umwandeln, aber ich würde wirklich gerne wissen, was ich falsch gemacht habe !!! Hilfe, Ratschläge und/oder Hinweise wären toll! danke
Hinweis: Betrachten Sie nützlichere Variablen Namen als 'j' und' m'. – chux