1

再帰関数を使用して文字配列をループする割り当てがあります。配列の長さを知っているので簡単だと思いましたが、使用する必要があるプロトタイプが提供されます。

void display(char str[])

長さを知らずにこれを再帰的にループする方法を想像できません。誰か私にこれについてナッジしてもらえますか?

4

3 に答える 3

3
void display(char str[])
{
    if (*str) {
        putchar(*str);
        display(str+1);
    }
}
于 2013-02-04T06:10:40.190 に答える
0

C文字列(文字配列がC文字列であると想定)はnullで終了すると見なされます。したがって、たとえば、再帰関数を使用して長さを計算し、ベースケースのヌル文字を探して完了したことを確認できます。

于 2013-02-04T06:10:44.527 に答える
0

@abelenky と @Nathan が述べたように、文字配列は「null」文字 (通常は'\0') で終わると想定されています。
文字数を求める方法の例を次に示します。

 unsigned int strLen( const char[] str ) {
     unsigned int len = 0;
     while( str[len] ) {
         len++;
     }
     return len;
 }
于 2013-02-04T06:21:27.140 に答える