0

構造があるとします

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

配列内の要素の数、つまり配列に入力された要素の数を見つける方法を教えてください。これにより、配列を逆の順序で印刷できます(文字列を逆の順序で配列に変換したため)。

4

2 に答える 2

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;
}
于 2013-08-03T18:23:53.970 に答える
0

構造体に長さフィールドを追加するか、文字列が 0x0 を使用するように、配列の最後の要素に値を配置することができます。次に、そのサイズを指定するには、長さフィールドを使用するか、特殊なバイトに到達するまで読み取りとカウントを行います。

于 2013-08-03T21:23:08.287 に答える