Ich bin ziemlich neu in der Programmierung und mache gerade einen Programmierkurs in der Schule mit C. Wir bekamen eine Aufgabe und ich habe ein bisschen Schwierigkeiten mit dem ersten Teil. Wir lernen, wie man die Zeichenkettenbehandlungsbibliothek (stdlib.h) verwendet, und das Ziel der Zuweisung besteht darin, mehrere Textzeilen über die Tastatur einzugeben. Der Lehrer hat uns geraten, zweidimensionale Arrays zu verwenden, um das zu tun, aber ich bin ein bisschen festgefahren. Hier ist der Code, den ich geschrieben habe:Eingabe mehrerer Strings in C
int main(void) {
char string[3][SIZE];
int i, j;
int c;
printf("Enter three lines of text:\n");
for (i = 0; i < 3; i++) {
j = 0;
while ((j < SIZE) && (c = getchar() != '\n')) {
string[i][j] = c;
j++;
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < SIZE; j++) {
printf("%c", string[i][j]);
}
printf("\n");
}
return 0;
}
Einige Punkte, die Ich mag würde machen ist, dass ich die getchar() Funktion Eingang ein Zeichen in einer Zeit zu erhalten, und auch die zweiten for-Schleife I bestimmt um jede Textzeile zu drucken, die in jeder Zeile des String-Arrays gespeichert ist.
Der Eingang ist jede Textzeichenfolge für drei Zeilen, zum Beispiel:
Hi my name is John.\n
I am from the US\n
and I'm a student.
Hier ist, was die aktuelle Ausgabe wie folgt aussieht:
Enter three lines of text:
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...
Die Ausgabe, die ich erwartet habe, ist:
Enter three lines of text:\n
Hi my name is John.\n
I'm from the US\n
and am a student.
Alle Tipps oder Ratschläge würden sehr geschätzt werden. Vielen Dank!
Ist es eine Anforderung der Übung, dass Sie Charakter für Charakter arbeiten? – Schwern
Ja! Deshalb habe ich die Funktion getchar() benutzt. Mein Ausbilder hat empfohlen, da wir die String-Handling-Bibliothek studieren, die wir versuchen zu verwenden, so viele wir können, unabhängig von der Angemessenheit oder Effizienz. – Sean
@Sean Danke für die Klarstellung. BTW [string.h] (https://en.wikipedia.org/wiki/C_string_handling) ist die String-Handling-Bibliothek. [stdio.h] (https://en.wikipedia.org/wiki/C_file_input/output) ist die IO-Handling-Bibliothek, von der 'getchar' kommt. [stdlib.h] (http://www.tutorialspoint.com/c_standard_library/stdlib_h.htm) ist eine Art Mülldeponie. – Schwern