在线测试系统希望我的代码输出数字10
。
它接受:
printf("%d",10)
printf("%c%c\0", '1', '0')
printf("%c%c\0something", '1', '0')
printf("%c%c%s", '1', '0', "\0")
但拒绝:
printf("%c%c%c", '1', '0', '\0')
printf("%c%c%c", '1', '0', 0)
putchar('1');putchar('0');putchar('\0');
putchar('1');putchar('0');putchar(0);
印刷"\0"
和印刷有什么区别'\0'
?
您的在线测试系统期望看到字符序列{'1', '0'}
,但您将序列发送给它{'1', '0', NUL }
。除了字符串字符之外,您还尝试打印字符串终止符。
该字符串"10"
在内部表示为字符序列{'1', '0', NUL}
,但是当您使用 显示它时printf( "%s", "10" );
,该尾随0
不会写入输出流。终止符仅用于标记字符串的结尾 - 它永远不会显示或复制。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句