为什么代码中字符串输出到C就停止,后面\097D不输出而strlen中输出字符为8
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char*str="A\101BC\097D"; printf("%s",str); printf("%d",strlen("12\023\xa\\\bcc")); return 0; }
收起
1.为什么代码中字符串输出到C就停止,后面\097D不输出?
因为编译器发现\097的''后面的数字097不是八进制,所以这里会识别为'\0',而这真是字符串的结束标志.
2.而strlen中输出字符为8?
因为\023 23可以识别为8进制,所以算一个字符.
如果有帮助,记得点一下采纳哦
报告相同问题?