递归函数循环通过字符数组

时间:2013-02-04 06:07:16

标签: c++ arrays recursion character-arrays

我有一个赋值,我应该使用递归函数循环一个字符数组。我认为这很容易,因为我知道数组的长度,但原型是给我的,我必须使用:

void display(char str[])

我无法想象如何在不知道长度的情况下递归循环。请问有人能给我一点推动吗?

3 个答案:

答案 0 :(得分:3)

void display(char str[])
{
    if (*str) {
        putchar(*str);
        display(str+1);
    }
}

答案 1 :(得分:0)

C字符串(假设您的字符数组是C字符串)被假定为空终止。因此,您可以使用递归函数计算长度,并查找基本情况的空字符,以了解您已完成。

答案 2 :(得分:0)

如@abelenky和@Nathan所述,假设字符数组以“null”字符结尾(通常为'\0')。
这是一个如何找到字符数的例子

 unsigned int strLen( const char[] str ) {
     unsigned int len = 0;
     while( str[len] ) {
         len++;
     }
     return len;
 }