Zum drucken von einzelnen Zeichen eines Strings in C
Ich bin ein wenig verwirrt über diese hier
char *string;
scanf("%s",string);
int i=strlen(string);
int k = 0;
while(k<i){
printf("%c", string[k]);
k++;
}
und wenn ich compile diese es druckt nichts.
- Ist es nicht gedruckt
- Sie müssen auch drucken
\n
am Ende, oder tunfflush(stdout)
. Der standard-Ausgang ist line-buffered per default.
Du musst angemeldet sein, um einen Kommentar abzugeben.
string
ist ein Zeiger. Sie benötigen, um Speicher zuzuweisen, so dass Sie können halten Sie die Eingabe-Lesen mitscanf
.diese Anweisung erzeugt nur ein Zeiger auf einen Zeichen-array, aber nicht Speicher zu halten array.
Sie müssen Speicher explizit mit der dynamischen Zuweisung. Sie können
malloc
wie Funktionen. Lesen dieseoder können Sie erklären, ein array statt Zeiger,
GRÖßE ist die maximal mögliche Größe der Zeichenfolge.
Sie können auch getline statt
scanf
seitgetline
Speicher zuweist, wenn NULL-Zeiger übergeben wird.realloc
und dann speichern Sie es, und wiederholen Sie dieses in einer Schleife. Also, wenn verwenden können getline verwenden Sie es direkt.