求一个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有数据的长度,如何求得?
展开
3个回答
展开全部
该语句会对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;
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;
展开全部
没有办法直接获得,需要用另一个变量保存长度,每次修改这个数组同时野悔修改长度。
或者约定用一闹信个特殊颂弯正的值表示有效数据已结束,这个特殊值不能和普通数据混淆。
对于 char[],C的约定是用0('\0')来表示有效数据的结束。
或者约定用一闹信个特殊颂弯正的值表示有效数据已结束,这个特殊值不能和普通数据混淆。
对于 char[],C的约定是用0('\0')来表示有效数据的结束。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sizeof(test)
printf("%d"迅稿,sizeof(test));
没有给值的单元也有值的。所以卜昌稿还型孝是 100。
printf("%d"迅稿,sizeof(test));
没有给值的单元也有值的。所以卜昌稿还型孝是 100。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询