'); // 数组"og:type" content="webpage">'); // 数组" /> '); // 数组"> C语言如何检查一个数组中元素的个数_框架_内存溢出

阅读21

C语言如何检查一个数组中元素的个数,第1张

对于字符数组

str[N],判断方法有以下三种:

第一种:用库函数strlen

len = strlen(str); // 数组长度

第二种:利用计数器

int i=0;

while(str[i++] != '\0'); // 数组str的长度为i

第三种:利用sizeof函数

len = sizeof(str)/sizeof(str[0]); // 数组长度对于其他类型的数组,都可以用字符数组的第三种方法,第三种方法是通用的。

你这个问题很含糊。

假设是可以解决的方式:type a[] = {}; // 这种情况就是不知道数组元素个数

,“”的意思是,对数组赋初值的初值个数不确定。type为任意正确的数据类型。

那么:sizeof(a) / sizeof(type)

就可以得到数组元素个数了。

但是,如果把这个数组的数组名,通过实参传递给其它函数了,那么,上面的 *** 作就是不正确的了。因为,所有的形参都只能是变量,绝对不可能是数组。例如:

void fun(type b[100])

{

// 表面上b是一个数组,其实b是一个type 的指针变量,只占用4B的存储空间。

printf("%d\n", sizeof(b));

// 上面的输出语句,其输出结果应该是4,无论type类型是什么。

}

所以,如果你确实不知道数组里有多少个元素,那么,应该说,很难对这个数组进行 *** 作。

上面所述都基于C语言,Java等不存在这样的问题。因为,在Java中,数组根本就是类类型,有length成员可以得到数组元素个数。

count():对数组中的元素个数进行统计;

sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0;

array_count_value():统计每个特定的值在数组$array中出现过的次数;

以语句dim a(3 ,-2 to 2 ,5)为例:

Option Base 1

Private Sub Form_Click()

Dim i As Integer, j As Integer, k As Integer

Dim count As Long

Dim a(3, -2 To 2, 5) As Integer

For i = LBound(a, 1) To UBound(a, 1)

For j = LBound(a, 2) To UBound(a, 2)

For k = LBound(a, 3) To UBound(a, 3)

count = count + 1

Next k

Next j

Next i

MsgBox count

End Sub

扩展资料:

vb常用函数:

Len(x)求字符串的长度(字符个数)

LenB(x)求字符串的字节个数

Mid(x,n1,n2)从x字符串左边第n1个位置开始向右取n2个字符

Left(x,n)从x字符串左边开始取n个字符

Right(X,n)从x字符串右边开始取n个字符  

String(n,x)返回由n个首字符组成的字符串  

Space(n)返回n个空格  

Now返回系统日期和时间  

Year(c)返回指定日期的年份  

Minute()返回指定时间的分数  

Chr(x)将数值(ASCII码)转换为字符  

CBool(x)将数字字符串或数值转换成布尔型

参考资料来源:百度百科-Visual Basic

int str[100];

gets(str); -- 错,gets 用于 char str[100]; 不能 int 型。

===============

一个数组x[]中 有多少个元素:

int x[]={1,2,3,4,5,6,7,8,9,10};

n = sizeof(x) / sizeof(int);

================

控制台输入 2 5 6 7回车 输出结果4(输入了4个数) ,用下法:

#include <stdioh>

int main()

{

int x[]={1,2,3,4,5,6,7,8,9,10};

int i, n,c;

n = sizeof(x) / sizeof(int);

printf("There are %d elem in the array\n",n);

printf("\nintput data\n");

n=0;

while(1){

if ( scanf("%d",&x[n]) ==1) n++; // 统计个数

c = getc(stdin);

if (c=='\n') break; else ungetc(c,stdin); // 判断是否输入结束符 \n到达

}

printf("you typed %d data:\n",n);

for (i=0;i<n;i++)

printf("%d ",x[i]);

return 0;

}

使用awk的内置函数split,将第三个字段根据分隔符“-”分割并存入数组,最后跟随$1和$2逐个打印。

$ echo "aaa 3 1-2-3-4-5" | awk '{n=split($3,a,"-");for(i=1;i<=n;i++)print $1,$2,a[i]}'aaa 3 1aaa 3 2aaa 3 3aaa 3 4aaa 3 5

汗,这个意思啊。用容器阿。

#include<vector>

vector<string> a;

apush_back(""A);

放多少都可以。

然后用

asize()就可以知道了。vector类是很强大的。用起来特别方便

以上就是关于C语言如何检查一个数组中元素的个数全部的内容,包括:C语言如何检查一个数组中元素的个数、不知道一个数组里有多少个元素.怎么去读取它、php怎么获取数组一个元素个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:

内存溢出

原文地址:

https://www.54852.com/web/9489156.html
是一个
(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
darliedarlie一级用户组
统计TCP流量,jpcap抓包时,通过loopPacket()方法,笔记本的有限网卡抓不包,而无线网可以,这是为什么
上一篇
2023-04-28
怎样把酷我音乐豪华豪华vip转到听书vip账会员
2023-04-28

发表评论
请登录后评论...
登录
提交

    评论列表(0条)
保存
{label}{label}