再帰関数を使用して文字配列をループする割り当てがあります。配列の長さを知っているので簡単だと思いましたが、使用する必要があるプロトタイプが提供されます。
void display(char str[])
長さを知らずにこれを再帰的にループする方法を想像できません。誰か私にこれについてナッジしてもらえますか?
再帰関数を使用して文字配列をループする割り当てがあります。配列の長さを知っているので簡単だと思いましたが、使用する必要があるプロトタイプが提供されます。
void display(char str[])
長さを知らずにこれを再帰的にループする方法を想像できません。誰か私にこれについてナッジしてもらえますか?
void display(char str[])
{
if (*str) {
putchar(*str);
display(str+1);
}
}
C文字列(文字配列がC文字列であると想定)はnullで終了すると見なされます。したがって、たとえば、再帰関数を使用して長さを計算し、ベースケースのヌル文字を探して完了したことを確認できます。
@abelenky と @Nathan が述べたように、文字配列は「null」文字 (通常は'\0'
) で終わると想定されています。
文字数を求める方法の例を次に示します。
unsigned int strLen( const char[] str ) {
unsigned int len = 0;
while( str[len] ) {
len++;
}
return len;
}