我有一个赋值,我应该使用递归函数循环一个字符数组。我认为这很容易,因为我知道数组的长度,但原型是给我的,我必须使用:
void display(char str[])
我无法想象如何在不知道长度的情况下递归循环。请问有人能给我一点推动吗?
答案 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;
}