判断数组的长度

在编程中有时长需要判断一个数组的长度。

c/c++
strlen(str)和str.length()和str.size()都可以求字符串长度。
其中str.length()和str.size()是用于求string类对象的成员函数
strlen(str)是用于求字符数组的长度,其参数是char*。

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

在这里插入图片描述
如图所示:m【】和b【】的长度本应都是5,但是strlen()使用输出的为2。(这是strlen()函数的缺陷,遇到’\0‘就结束)。
(3)如何求整形数组的长度呢,需要用到sizeof()函数进行使用。

#include<bits/stdc++.h>
using namespace std;
//求数组的长度 
template <typename T>
int count(T& n)
{
 int s1=sizeof(n);
 int s2=sizeof(n[0]);
 return s1/s2;
}
int main()
{
 int a[]={1,2,3};
 char m[]={'a','b','\0','c','d'};
 char b[]={"ab\0c"};  
 string c="asdasddddda";
 cout<<count(a)<<endl;   //整形数组的长度 
 cout<<count(m)<<endl;   //字符行数组的长度 
 cout<<c.size()<<endl;  //字符串数组的长度可用size()或length()函数来求 
 cout<<strlen(b)<<endl;  //strlen()函数可用来求字符数组的长度。 
 cout<<sizeof(b)<<""<<sizeof('a')<<sizeof("a");  //b的大小是5, "a"是字符串,包含'a和'\0'.返回的是2
 cout<<sizeof(c);  //其等于string类的大小。 
 return 0;
}
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值