4

int findNumber(char *exp,int i,int *num)    
{    
    int k=i;    
    char *p;    
    p=exp[i]; //<-- here
    while(*p>='0'&&*p<='9')    
    {
        (*num)=(*num)*10+(*p);
        k++;
        p++;
    }
    return k;
}

私は行でそのエラーを取得し続けます: (p=exp[i];) 私は char 配列と (i,num) 整数を送信しようとしています。動作するので注意しないでください。ただし、関数は、「exp」の最初の文字が数字ではない場所を返す必要があります。その前のすべての文字が数字であることを確認してください。

4

3 に答える 3

5

pはであるchar*ため、ポインターを割り当てる必要がありますが、配列からexp[i]単一の要素を返します。char試す

p = &exp[i];

また

p = (exp + i);

代わりは。

于 2013-01-09T18:30:03.740 に答える
0

次の行に対応するように修正しp=&(exp[i]);てください。これは、exp[i] のポインターを p に割り当てていることを意味します。

于 2013-01-09T18:35:56.947 に答える
0

の代わりに address-of を取得してからに渡す必要がありpます。これはポインターです。つまり、 i exp` 配列に割り当て charられます。char* returned from value atindex in

これを試して:p = &exp[i];

于 2013-01-09T19:13:15.023 に答える