首页 > 试题广场 >

字符串“a+b=20\n”的长度是()?

[单选题]

字符串“a+b=20\n”的长度是()

  • 7
  • 8
  • 5
  • 6
是求字符串长度,没有问占用的内存长度
发表于 2017-09-21 08:13:15 回复(0)
求长度,用strlen; 求内存空间大小,用sizeof
发表于 2018-08-20 10:09:00 回复(0)
7个。a,+,b,=,2,0,\n
发表于 2020-01-10 14:36:24 回复(6)
这是脑筋急转弯吗?这题对错的毫无意义,如果想问strlen就直接打出来。如果想考EOF也直接问。个人觉得这种题可以去掉了。
发表于 2020-10-15 13:27:32 回复(0)
字符指针或数组后面隐藏着一个字符串结束符\0,计算长度时忽略结束符,而计算空间大小时要加上这个结束符。
发表于 2020-09-25 08:49:33 回复(0)
答案输出来是8
#include<iostream> #include<string> using namespace std; int main()
{
    char str[] = "a+b=20\n";
    int i = sizeof(str);
    cout << i <<endl;
    return 0;
}
编辑于 2017-10-13 09:23:34 回复(5)
长度为7 占据内存空间为8
发表于 2017-09-04 13:31:58 回复(0)
问的是字符串的长度,不关心其存储方式,所以是7
编辑于 2017-08-30 21:21:05 回复(0)
#include <iostream>
#include "string.h" 
using namespace std;

int main()
{
	char *s = "a+b=20\n";
	cout << sizeof(s) << '\n';
	cout << strlen(s);
} 


运行结果为:
8
7

由此可知求长度为7,求内存占用为8;
发表于 2021-01-16 12:07:06 回复(0)
\n转意为换行符,所以长度是7
发表于 2020-09-03 00:22:55 回复(0)
\n的算一个字符,占用两个空间
发表于 2020-05-24 02:06:58 回复(0)
此题有问题,如果是占空间那么应该是7,如果是字符串长度那么应该是6,
发表于 2017-10-02 16:35:09 回复(1)
如果问的是字符串的长度的话那么是7,如果问的是多少字节的话,那么结果是8。里面的20是按字符解释的,所以占两个字节,而不是一个字节。
发表于 2017-10-08 15:45:09 回复(0)
string str1 = "a+b=20\n";
char str2[] = "a+b=20\n";
int len1 = str1.size();    //len1=7
int len2=sizeof(str2) / sizeof(char);    //len2=8
编辑于 2017-08-19 10:44:39 回复(0)
注意:
1、const char* p = "abc"; sizeof(p);//32位机器4字节/64位机器8字节 strlen(p);//3
2、char str[] = "abc"; sizeof(str);//4字节 strlen(str);//3
3、char str[]= {'a','b','c'}; sizeof(str);//3字节 strlen(str);//随机数
发表于 2023-04-29 21:56:54 回复(0)
答案应该是 7 
发表于 2017-09-15 11:35:11 回复(0)
这种题是在搞脑筋急转弯,啥意义?
发表于 2025-06-02 09:42:27 回复(0)
字符长度是7,空间长度是8
发表于 2024-06-25 10:03:51 回复(0)
答案错了
编辑于 2023-12-25 11:48:16 回复(0)
strlen只记字符的个数,而sizeof会加上后面的一个结束符,所以strlen是7,sizeof是8
发表于 2023-10-30 21:19:12 回复(0)