C语言 怎么判断一个整数数组长度

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:50:38
比如说 int num[100]
然后往里面存了一些数 现在不知道存了多少数 只知道少于100个
那怎么求出里面实际有多少个数字啊
还有用strlen(num)行不行 为什么。

不行,strlen(num)求出来的肯定是100,因为定义语句int num[100]就表示内存中已经分配了100个长度的空间,而strlen就是求出内存中分配的空间长度,所以肯定不行

我想你可以在定义int num(100)的时候,将整个数组全部初始化为某个固定的值(最好是你后来不可能放的值),比如0或者是C中的常量INT_MAX,这样的话,当你将数组中存完了一定数目的数的时候,用一个循环语句,将数组从头到尾搜索一遍,当遇到不是你分配的值的时候,加1,即可求出你总共存了多少个数了啊

int count=0;
for(i=0;i<100;i++)
{
if(num[i]!=分配的值)
{
count++;
}
else
{
break;
}
}
cout<<"已经存入了"<<count<<"个数!"<<endl;

楼主,分两种情况:
1.一个字符数组
char num[100]
如果你不知道存了几个的话,你可以用strlen(num)来取得
2.一个整型数组
如果你不知道存了几个的话,你可以这么做
比如
int num[100]={-100};
然后用for循环判断有多少个数不等于-100,就可以变相统计存了多少个数了
3.strlen()函数只能用于求字符串的长度,不能用于求int数组

不行,strlen只用于计算字符串的长度。可以定义一个变量,初值为0,数组中每存入一个数字,该变量增1。如:
int num[100], count = 0;
num[0] = 9;
++count;

可以很负责的告诉你,做不到,你要用另外一个变量来指示有多少个数。
除非你的数有特征,比如你存放的数没有0,那么你可以将数组的元素全部初始化为0,那么你只要一直往后读,读到0表示数组结束。(类似字符串)

只要进行了声明,就会