length()函数,size()函数,strlen()函数,sizeof()操作符的区别

C++中三种函数的区别

length()函数
size()函数
strlen()函数
sizeof()函数


length()函数
length()函数用来获取字符串长度。

string s = "hello";
int len = s.length();
cout << "len = " << len << endl;

输出为:len = 5

size()函数
跟length()函数一样,可以获得字符串长度。但是size()函数还可以用来获取vector的长度。

string s = "hello";
vector<int> nums = {1,2,3,4};

int len1 = s.length();
int len2 = nums.size();

cout << "len1 = " << len1 << endl;
cout << "len2 = " << len2 << endl;

输出为:len1 = 5 len2 = 4

strlen()函数
只能用来计算字符型数组的长度。

char s[30] = "abcdefg";
int len = strlen(s);
cout << "len = " << len << endl;

输出为:len = 7

sizeof()函数
sizeof()是操作符,用来获取对象所占内存字节大小。

char s[30] = "abcdefg";
int n = sizeof(s);
cout << "n = " << n << endl;

输出为:n = 30

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这四个函数的作用都与获取数据的长度有关,但具体用法和适用范围有所不同。 1. sizeof() sizeof() 是 C/C++ 中的一个操作符,用于获取数据类型或变量在内存中所占的字节数。例如: ```c++ int a; size_t size = sizeof(a); ``` 这里 size 变量的值为 4,因为 int 类型在大多数系统上占用 4 个字节。 2. strlen() strlen() 是 C/C++ 中的一个函数,用于获取字符串的长度,不包括字符串末尾的 null 字符。例如: ```c++ char str[] = "hello"; size_t length = strlen(str); ``` 这里 length 变量的值为 5,因为 "hello" 这个字符串共有 5 个字符。 3. length() length() 是 C++ STL 中的一个函数,用于获取容器(如 std::string、std::vector 等)中元素的个数。例如: ```c++ std::string str = "hello"; size_t length = str.length(); ``` 这里 length 变量的值为 5,因为 "hello" 这个字符串共有 5 个字符。 4. size() size() 是 C++ STL 中的一个函数,用于获取容器(如 std::string、std::vector 等)中元素的个数。与 length() 函数相似,但返回值类型不同,size() 函数返回的是一个无符号整数类型(如 size_t),而 length() 函数返回的是一个有符号整数类型(如 int)。例如: ```c++ std::vector<int> vec = {1, 2, 3, 4, 5}; size_t vec_size = vec.size(); ``` 这里 vec_size 变量的值为 5,因为 vec 容器中共有 5 个元素。 总结: | 函数/操作符 | 适用范围 | 返回值类型 | 作用 | | --- | --- | --- | --- | | sizeof() | 任何数据类型或变量 | 无符号整数类型(如 size_t) | 获取数据类型或变量在内存中所占的字节数 | | strlen() | 字符串 | 无符号整数类型(如 size_t) | 获取字符串的长度 | | length() | 容器(如 std::string、std::vector 等) | 有符号整数类型(如 int) | 获取容器中元素的个数 | | size() | 容器(如 std::string、std::vector 等) | 无符号整数类型(如 size_t) | 获取容器中元素的个数 |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值