我仍然想知道如何传入null字符作为命令行参数,也许这样可以将单个字符串作为参数传递到表单中:
“来\ 0BE \ 0or \ 0not \ 0℃至\ 0BE \ 0”
然后解析它。 但是程序会将此字符串视为:
“来\\ 0BE \\ 0or \\ 0not \\ 0℃至\\ 0BE \\ 0”
我该如何解决这个问题?有什么办法吗?
答案 0 :(得分:17)
你不能。
C程序接收参数为零终止字符串。根据定义,这样的字符串不能包含空字符。
如果要传递空字符,则必须使用某种语法对其进行某种程度的编码,然后您的C程序必须通过解释该语法对其进行解码。
答案 1 :(得分:6)
C字符串以空值终止,因此在C. :-P
中无法传递包含NUL字符的字符串现在,如果您只想要一种方法将\0
(在用户输入中,即"\\0"
转换为C字符串)转换为实际的NUL字符,那就另当别论了。在这种情况下,您的程序只需要一个解析器来将\0
视为分隔符。