CF291B Command Line Arguments

题目描述

本题描述了命令行的属性,其描述方式与实际操作系统常见的相似,但行为上存在差别。请务必仔细阅读题目说明,并严格按照说明作为正式文档。 在 Pindows 操作系统中,字符串是命令行的词元——首个词元被认为是要运行的程序名,之后的词元则是该程序的参数。例如,执行命令 " run.exe one, two . " 时,Pindows 命令行为该命令行分为四个词元:“run.exe”、“one,”、“two”、“.”。更正式地说,如果我们运行一个可以表示为字符串 $s$(不包含引号)的命令,则命令行的词元是字符串 $s$ 中不包含空格的极大子串。 若要将包含空格的字符串或一个空字符串作为命令行的词元,可以使用双引号。需要视为一个词元的字符块包含在引号内。禁止嵌套引号——即对于每个引号 $\texttt{"}$,都能明确区分其为起始还是结束引号。例如,执行命令 ""run.exe o" "" " ne, " two . " " " 时,Pindows 命令行为该命令行分为六个词元:“run.exe o”、“”(空字符串)、“ ne, ”、“two”、“.”、“ ”(单个空格)。 保证命令行的每个词元都被空格包围,或者与命令边界相接。其一个结果为:引号的左侧要么是字符串的第一个字符,要么左侧存在一个空格。 你得到一个仅包含大小写英文字母、数字、符号 ".,?!"" 与空格的字符串。保证该字符串为 Pindows 操作系统下的合法命令行字符串。请输出该命令行字符串的所有词元。将字符 $\texttt{"}$ 仅用于将一整个字符块作为一个命令行词元。特别说明,给定字符串中的引号数保证为偶数。

输入格式

输入仅一行,包含非空字符串 $s$。字符串 $s$ 的长度不超过 $10^{5}$,仅包含大写或小写英文字母、数字、“.”、“,”、“?”、“!”、“"”以及空格。 保证输入字符串为合法的 Pindows 操作系统命令行字符串,并且该命令行字符串至少包含一个词元。

输出格式

每行输出一个词元,依次输出。为了输出格式更清晰,请在每个词元左侧输出一个“”。按照它们在命令中的出现顺序输出词元。 请严格遵循输出格式。具体格式可参考样例数据。

说明/提示

由 ChatGPT 5 翻译