字符串中sizeof、strlen、size、length的区别

void FAQ_GetLengthMethod()
{
	/**
		1.length()只用于获取string字符串的长度

		2.size()
		2.1 可以获取string字符串的长度
		2.2 可以获取vector的长度

		PS:string可以用length()和size()获取字符串长度,应该和string对象有关。类可以用局点连接类方法。

		3.sizeof()
		获取数据类型或者变量所占内存空间的大小   sizeof(int)= 4

		4.获取字符串实际的长度:strlen(arr);

		PS:c风格字符串和char数组的区别:c风格字符串是特殊的char数组,它的末尾是空字符,\0。
		char数组:char dog[10] = { 'a', 'b', 'c', 'd' };
		c风格字符串:char cat[10] = { 'a', 'b', 'c', '\0' };
		PS:字符数组或者char数组,应该只有这一种初始化方式
		char animal = "s"; 这里的s实际是s和\0。
	*/

	const int charSize = 30;
	char charArray01[charSize] = "This is a charArray01!";
	char charArray02[] = "This is a charArray02!";
	char charArray03[charSize] = "This is a charArray031234567!";
	string str01 = "this is a string!";

	/*
	1.length()只用于获取string字符串的长度
	*/
	//cout << "charArray01 的长度是:" << charArray01[charSize].length() << endl;
	//(1)length不能用来求c风格字符串的长度
	//(2)“.length”的左边必须有类 / 结构 / 联合
	cout << "str01 是:" << str01 << endl;
	cout << "str01 的长度str01.length()是:" << str01.length() << endl;

	/*
	2.size()
	2.1 可以获取字符串的长度
	2.2 可以获取vector的长度
	*/
	//cout << "charArray01 的长度是:" << charArray01.size() << endl;
	cout << "str01 的长度str01.size()是:" << str01.size() << endl;

	/*
	3.sizeof()
	获取数据类型或者变量所占内存空间的大小   sizeof(int)= 4
	*/
	cout << "\ncharArray01 是:" << charArray01 << endl;
	cout << "字符串所占内存空间的大小sizeof(charArray01)是:" << sizeof(charArray01) << endl;

	/*
	4.获取字符串实际的长度:strlen(arr);
	*/
	cout << "字符串实际的长度strlen(charArray01)是:" << strlen(charArray01) << endl;

	cout << "charArray01 中第二个元素charArray01[1]是:" << charArray01[1] << endl;
	cout << "charArray01 中第二个元素的长度sizeof(charArray01[1])是:" << sizeof(charArray01[1]) << endl;

	cout << "\ncharArray02 是:" << charArray02 << endl;
	cout << "字符串所占内存空间的大小sizeof(charArray02)是:" << sizeof(charArray02) << endl;
	cout << "字符串实际的长度strlen(charArray02)是:" << strlen(charArray02) << endl;

	cout << "\ncharArray03 是:" << charArray03 << endl;
	cout << "字符串所占内存空间的大小sizeof(charArray03)是:" << sizeof(charArray03) << endl;
	cout << "字符串实际的长度strlen(charArray03)是:" << strlen(charArray03) << endl;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值