任务是:
命令行将仅包含以下字符:∙ 拉丁字母(大小)和数字、∙ 空格 (ASCII 32)、∙ 双引号 (ASCII 34)。
参数按顺序写入命令行。在每两个相邻参数之间插入一个或多个空格以将它们彼此分开。该参数可以完全用双引号括起来。如果参数内有空格,则必须用双引号括起来。参数本身没有双引号字符 - 它们只能围绕参数。所有参数都是非空的。
要解析的命令行位于输入文件的一行。其长度不超过 100 个字符。请注意,此命令行缺少可执行文件的名称。将需要的命令行参数输出到输出文件,每行一个参数。每个参数必须用方括号括起来。不需要输出特殊的空参数(命令行本身)。
以下是我的代码。似乎工作正常,但是当你输入多个空格时,输出是某种难以理解的混乱,我不明白是什么原因:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char c;
do
{
scanf("%c", &c);
switch (c) {
case '"':
printf("[");
scanf("%c", &c);
while (c != '"')
{
printf("%c", c);
scanf("%c", &c);
}
//printf("]\n");
case ' ':
if (c != '\n')
{
scanf("%c", &c);
}
default:
while (c != ' ' && c != '\n')
{
printf("[%c", c);
scanf("%c", &c);
}
printf("]\n");
getch();
}
} while ( c!= '\n');
return 0;
}