假设我有一个结构
struct integer
{
int a[10000];
};
一个字符串s .. 我做了一个功能..
struct integer* convert_integer(char* stringInt)
{
int i=0;
struct integer* A;
A = (struct integer*)malloc(sizeof(struct integer));
for (i=((strlen(stringInt))-1);i>=0;i--)
{
(A->a)[i]=(int)stringInt[(strlen(stringInt))-1-i] - 48;
}
return A;
}
如何找到数组中元素的数量,即数组中已填充的元素数,这样我就可以按相反顺序打印数组(因为我已按相反的顺序将字符串转换为数组) ..
答案 0 :(得分:0)
我不知道为什么你保持变量i与位置然后再次重新计算以反向顺序,这样的事情可以完成这项工作
struct integer* convert_integer(char* stringInt)
{
int i=0, j=0;
struct integer* A;
A = (struct integer*)malloc(sizeof(struct integer));
for (i=((strlen(stringInt))-1);i>=0;i--)
{
(A->a)[j++]=(int)stringInt[i] - '0';
}
/* ***********************************
j has the number of elements,
also you could put another fild in the struct which indicates just that:
struct integer
{
int count;
int a[10000];
};
A->count = j;
************************************ */
return A;
}
答案 1 :(得分:0)
您可以在结构中添加长度字段,也可以在数组的最后一个元素中放置一个值,就像字符串使用0x0一样。然后,对于它的大小,你可以只使用长度字段或读取和计数,直到你到达你的特殊字节。