Ist es erlaubt scanf(" ")
ohne zusätzliche Argumente zu verwenden, um anfängliche Leerzeichen zu ignorieren?
Ich verwende getchar()
, um die Zeichen eines Wortes zu lesen, und ich möchte die Leerzeichen vor dem Wort ignorieren (Leerzeichen nach werden verwendet, um das Ende des Wortes zu überprüfen).
Der Code ist der folgende, ist es richtig?scanf ohne zusätzliche Argumente in C
char *read_word() {
int size = 2;
int char_count = 0;
char *s;
char ch;
s = mem_alloc(size);
scanf(" ");
while ((ch = getchar()) != EOF) {
if (char_count >= size) {
s = mem_realloc(s, size++);
}
if (ch == ' ' || ch == '\n') {
s[char_count] = '\0';
break;
}
s[char_count++] = ch;
}
return s;
}
Absolut ..... – DevSolar
Abgesehen: 'mem_realloc (s, Größe ++);' -> 'mem_realloc (s, ++ size); ' –
Hinweis: Code kann' s' zurückgeben, dem ein Nullzeichen fehlt. – chux