我是靠谱客的博主 痴情魔镜,最近开发中收集的这篇文章主要介绍C/C++使用length()、size()、strlen()、sizeof(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

定义

sizeof(…)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。

strlen(…)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符’’。返回的长度大小不包括’’。

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’’停止。

str.length()和str.size()都可以求字符串长度。
其中str.length()和str.size()是用于求string类对象的成员函数

代码

#include<iostream>
#include<string>
using namespace std;

int main() {
	string str = "0123456789";
	cout << "str.length()=" << str.length() << endl;//结果为10
	cout << "str.size()=" << str.size() << endl;//结果为10
	
	char a[] = "abcde";
	cout << strlen(a) << endl;//结果为5
	cout << sizeof(a) << endl;//结果为6
	
	char *p = a;
	cout << strlen(p) << endl;//结果为5
	cout << sizeof(*p) << endl;//结果为1

	int b[5] = { '123', '21'};
	cout << strlen((char *)b) << endl;//结果为3,strlen参数只能是char*,算到以''结尾
	cout << sizeof(b) << endl;//结果为20
	return 0;
}

最后

以上就是痴情魔镜为你收集整理的C/C++使用length()、size()、strlen()、sizeof()的全部内容,希望文章能够帮你解决C/C++使用length()、size()、strlen()、sizeof()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部