台湾bgo官网:输出的结果是什么?
来源:百度文库 编辑:神马品牌网 时间:2024/10/06 10:21:55
选出以下语句的输出结果
printf("%d",strlen("\t\”\065\xff\n\\"));
A) 6 B) 14 C) 8 D) 输出项不合法,无正常输出
答案是第一个 为什么?
printf("%d",strlen("\t\”\065\xff\n\\"));
A) 6 B) 14 C) 8 D) 输出项不合法,无正常输出
答案是第一个 为什么?
答案是 6,原因在于 "\t\"\065\xff\n\\" 里有 6 个逃逸字元。
每一个逃逸字元都是一个字符,所以该字符串里有 6 个字符。
strlen()计算并返回它接收到的字符串的长度(即字符串里的字符个数),
所以 strlen( "\t\"\065\xff\n\\" )的返回值是 6。
6 交到 printf()的手里以整数格式输出到标准输出器上去显示,所以语句的输出结果是 6。
那 6 个逃逸字元全是 ASCII 字符集里的成员:
\t 水平制表符(Tab)
\" 双引号
\065 (以 8 进制表示的)5
\xff (以 16 进制表示的无名字符。打印出来显示为占两个字符位的空格)
\n 换行符
\\ 反斜杠
你可以把它们打印出来:
printf( "%s", "\t\"\065\xff\n\\" );
printf("%d",strlen("\t\”\065\xff\n\\"));
输出结果是:7
printf("%d",strlen("\t\"\065\xff\n\\"));
输出结果是:6
你输入的那个双引号还是单撇号???
strlen()用来计算以空(NULL)结束的字符串str长度,并且返回字符串的长度。结束符NULL不计在内。
建议你要是学C语言的话,去买一本函数大全