2016-09-03 1 views
1

Ich kann keine Hilfe dazu finden. Die meisten Probleme, die ich gefunden habe, beziehen sich darauf, das Array nicht mit einem '\ 0' zu schließen, aber das ist nicht der Fall.Füllen eines Arrays mit einer Zeichenfolge auf einer Seitenfunktion. Warum druckt es Kauderwelsch?

void main() { 
    char text[1000]; 
    int index=0; 
    loadText(text,&index); 
    printf("\nThe text is:\n %s",text); 
    getch(); 
} 

void loadText(char* text,int* index){ 
    printf("Insert the text: \n"); 
    while((*index<1000) && (text[*index]=getchar())!=EOF) { 
     *index++; 
    } 
    text[*index]='\0'; 
} 

Wenn ich das Array drucke zeigt es zufällige Zeichen.

Auf einer Seite zur Kenntnis, das ist ein Test, und wir die Funktion als gezwungen zu schreiben:

void loadText(char*, int*) 
+1

'int ch tun; für (* index = 0; * index <1000-1 && (ch = getchar())! = EOF; ++ * index) {text [* index] = ch; } ' – BLUEPIXY

+0

beim Posten einer Frage des Formulars: Warum funktioniert mein Code nicht, Postleitzahl, die sauber kompiliert. Der gepostete Code kompiliert nicht (fehlt die notwendige 'include' Anweisung) – user3629249

+0

Die Funktion:' getch() 'ist nicht Standard suggest:' int ch; while ((ch = getchar())! = EOF); getchar(); ' – user3629249

Antwort

2

In

*index++; 

nicht erhöht den Wert in dem Zeiger. Stattdessen erhält es den Wert (*index) und erhöht dann den Zeiger selbst (index=index+1).

(*index)++; 
+1

Danke Mann! Das war es :) –

Verwandte Themen