解析命令行参数argv中的双引号
在main的参数argv中,对双引号的表述如下:
> 由双引号包围的字符串("字符串")被解释为单个参量,而不管其中是否包含空白。被引号括起的字符串可以嵌入参量中。
> 由反斜杠引导的一个双引号(\")被解释为一个文字双引号字符(")l 反斜杠被作为文字解释,除非它们后面紧跟一个双引号。
> 如果偶数个反斜杠后面跟随一个双引号,则为每对反斜杠放一个反斜杠到argv数组中,双引号被解释为一个字符串定界符。
> 如果奇数个反斜杠后面跟随一个双引号,为每对反斜杠放一个反斜杠到argv数组中,双引号则被剩下的反斜杠进行“转义”而使得一个文字双引号(")放入到argv中。
但有一点没有进行描述:如果只有一个双引号且在之前没有反斜杠。经过试验得知系统将此处理成另一个双引号在最后,即双引号后都被看作一个参数。好像在别处没见过这样的用法。哪位能解释一下?多谢!
相应的MSDN在http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang98/html/_pluslang_parsing_c.2b2b_.command.2d.line_arguments.asp