【发布时间】:2015-02-22 16:10:00
【问题描述】:
当我试图更多地了解某些函数的行为时,我举了两个例子:
char str[]="Hello\0World"
和
char str[100];
scanf("%s",str);// enter the same string "Hello\0world"
这里的问题是,在第一个例子中我得到了Hello,而在第二个例子中我得到了Hello\0world
为什么\ 和0 这两个字符在第一个而不是第二个中被解释为字符串的结束字符?
【问题讨论】:
-
我在这里没有看到两个字符串。
-
C 编译器会将其设为单个字符。 scanf() 函数不知道 bean 关于转义序列,它看到两个字符。
-
我实际上是在询问不同的行为,而不是字符 \0 的含义! @CliffRibaudo
-
@tanit 也许你最好试着理解汉斯的意思。编译器解释文字中的转义字符。但是
scanf不会对您输入的文本这样做。