纯字符串操作,重点在于用0替换空格和‘\”’。
#include"stdio.h"
#include"string.h"

int main(void) {
    int i, num = 0, flag = 0;
    char str[1002] = {0};
    fgets(str, 1001, stdin);

    int len = strlen(str);
    if (str[len - 1] == '\n') {
        str[len - 1] = 0;
        len --;
    }

    for (i = 0; i < len; i++) {
        if (str[i] == '\"') {
            str[i] = 0;
            flag = ~flag;
        }
        if (str[i] == ' ' && !flag) {
            str[i] = 0;
            num ++;
        }
    }
    num++;
    printf("%d\n", num);
    printf("%s\n", str);
    for (i = 1; i < len; i++) {
        if (str[i] == 0 && str[i + 1]) {
            printf("%s\n", &str[i + 1]);
        }
    }

}