在结构指针中使用时数组中的元素数

时间:2013-08-03 17:42:01

标签: c

假设我有一个结构

 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;
 }

如何找到数组中元素的数量,即数组中已填充的元素数,这样我就可以按相反顺序打印数组(因为我已按相反的顺序将字符串转换为数组) ..

2 个答案:

答案 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一样。然后,对于它的大小,你可以只使用长度字段或读取和计数,直到你到达你的特殊字节。