首页 > 试题广场 >

函数strlen("ASDFG\n")的值是7。( )

[单选题]

函数strlen("ASDFG\n")的值是7。()

  • 正确
  • 错误
/n为转义字符, 占一个字节,ASDFG为5个字节,strlen()计算字符串的长度时不会计算隐藏的/0,所以是5+1 6个 sizeof()会计算/0字符
发表于 2017-06-08 09:29:31 回复(1)
#include <iostream>
using namespace std;
int main(){
int a,b;
a = strlen("ASDFG\n");
b = sizeof("ASDFG\n");
cout << a << endl<<b ;
system("pause");
}
输出结果为 a:6
                   b:7
发表于 2017-08-21 16:15:31 回复(0)
strlen()是计算字符串的长度,以\0'为字符串结束标记(故不计算\0)。
sizeof是关键字,计算的则是分配的数组str[] 所占的内存空间的大小,不受里面存储的内容影响(也就是会计算\0)
发表于 2018-03-25 09:22:26 回复(0)
错strlen函数到\0之前都算作长度,\n是转义字符算作一个,是6个
发表于 2022-04-10 15:39:33 回复(0)
sizeof是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4)
strlen是函数,要在运行时才能计算。参数必须是字符型指针。当数组名作为参数传入时,实际上数组就退化成指针了。
它的功能是:返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。
发表于 2021-11-14 20:03:52 回复(0)
答案为6
发表于 2017-07-19 16:26:49 回复(0)
答案为8  ASDFG 5  \n这样算两个字符  再加上隐藏的\0 5+2+1=8
发表于 2017-06-06 20:24:49 回复(5)
\n算一个转义字符,6没毛病
发表于 2023-04-25 23:08:53 回复(0)
B
发表于 2021-12-14 08:17:44 回复(0)
6
发表于 2019-11-26 22:07:41 回复(0)
其中的’\n’为一个字符
发表于 2017-06-06 11:04:59 回复(0)