在不使用额外参数的情况下,scanf(" ")
是否允许用于忽略前导空格?
我正在使用getchar()
读取单词的字符,并且我想在单词之前忽略空格(在单词后面使用空格来检查单词的结尾)。
以下是代码,它正确吗?
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;
}
mem_realloc(s, size++);
-->mem_realloc(s, ++size);
- Weather VaneEOF
,s[char_count] = '\0';
不会执行。 - chux - Reinstate Monica