求一个unsigned char 类型的数组内容长度 10

unsignedchartest[100]={0,0,1,2,3,4,0,0,5,6,0,7},里面的数据不是字符串,如果用strlen的话,参数必须是字符串,那我想知道... unsigned char test[100] = {0,0,1,2,3,4,0,0,5,6,0,7},里面的数据不是字符串,如果用strlen的话,参数必须是字符串,那我想知道test有数据的长度,如何求得? 展开
 我来答
zsthit
2012-06-15 · TA获得超过463个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:172万
展开全部
该语句会对100个元素都赋初值,一般情况孝顷下数组中不包括0的情况下,你可以遍历一下找到第一个不耐旅为0的,但是你这里面本来就有0就没办法判断了。或者如果你可以保证数组中昌慎凳最后一个元素不为0的话,你可以逆序遍历数组,遇到不为0的就停止,这样可以保证遍历次数小于等于100
unsigned char test[100] = {0,0,1,2,3,4,0,0,5,6,0,7};
int i;
for(i = 99; i >= 0; i--)
if(test[i] != NULL)
break;
cout << "长度:" << i+1 << endl;
philafox
2012-06-15 · TA获得超过253个赞
知道小有建树答主
回答量:124
采纳率:100%
帮助的人:94.3万
展开全部
没有办法直接获得,需要用另一个变量保存长度,每次修改这个数组同时野悔修改长度。
或者约定用一闹信个特殊颂弯正的值表示有效数据已结束,这个特殊值不能和普通数据混淆。

对于 char[],C的约定是用0('\0')来表示有效数据的结束。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2012-06-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5674万
展开全部
sizeof(test)
printf("%d"迅稿,sizeof(test));
没有给值的单元也有值的。所以卜昌稿还型孝是 100。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式