Рекурсивная функция Loop Through Character Array

У меня есть задание, где я должен перебирать символьный массив с помощью рекурсивной функции. Я подумал, что это было бы легко, так как я знал бы длину массива, но тогда мне нужен прототип, который я должен использовать:

void display(char str[])

Я не могу себе представить, как я должен проходить через это рекурсивно, не зная длины. Кто-нибудь может подсказать мне, пожалуйста?

1

Решение

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

Другие решения

Строки C (при условии, что ваш символьный массив является строкой C), должны иметь нулевое окончание. Таким образом, вы можете, например, использовать рекурсивную функцию для вычисления длины и искать нулевой символ для вашего базового случая, чтобы знать, что вы сделали.

0

Как упоминали @abelenky и @Nathan, предполагается, что массив символов заканчивается нулевым символом (обычно '\0').
Вот пример того, как узнать количество символов

 unsigned int strLen( const char[] str ) {
unsigned int len = 0;
while( str[len] ) {
len++;
}
return len;
}
0
По вопросам рекламы [email protected]