纯字符串操作,重点在于用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]); } } }