Задача. Очень часто для работы со строками нам нужно сначала вычислить длину строки. Для C-style строк длина нигде явно не хранится, но её можно вычислить. Напишите функцию, которая вычисляет длину C-style строки. Учтите, что завершающий нулевой символ считать не нужно.
Требования к реализации: при выполнении этого задания вы можете создавать любые вспомогательные функции. Вводить или выводить что-либо не нужно. Реализовывать функцию main не нужно.
Решение.
unsigned strlen(const char *str)
{
if(*str)
return 1 + strlen(++str);
else
return 0;
}
Вопросу у меня такой - Для чего нужна единица? Понимаю что идет рекурсия, но зачем нам складывать с единицей? Также если будет у кого-то другой способ решения, буду рад узнать.
Начинающий в плюсах, так что прошу сторого не ссудить
Суть подобного (рекурсивного) решения в том, что мы не знаем длину всей строки, однако мы можем взять подстроку длиной на 1 меньше и вернуть 1 + функция, т.е. мы повторяем эту операцию, пока нашу подстроку будет куда уменьшать (длина подстроки - 1 != 0), параллельно добавляя в рекурсивную лестницу 1 (я стараюсь объяснить как можно понятнее, возможны неточности). Потом, когда выполняется крайний случай, функция собирает все эти единицы по стэку и получается 1 + 1 + 1 + 1.... Вот и все. Таким же образом с помощью рекурсии можно найти количество членов последовательности.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я написал код для симметрии матрицы относительно побочной диагонали, на он ругается на
Вообще не понимаю как работает "word[i] != word[len-i-1]"Пожалуйста, опишите как можно подробнее и "для чайников")
Есть очень интересная задачаНужно заполнить двумерный массив MxN случайными числами в диапазоне [-5; 10] с помощью ГСЧ, а потом посчитать среднее...
Как программно создать в ячейках таблицы QTableView сетку QGridLayout, в которой размещены лейблы QLable?