Написать функцию numberstring для подсчета количества строк в тексте - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет, задание на указатели и динамическую память такое: Написать функцию numberstring() для подсчета числа строк в тексте. Напечатать это число. Помогите написать,пожалуйста, ибо я вообще не понимаю как это сделать. Заранее благодарю.

Решение задачи: «Написать функцию numberstring для подсчета количества строк в тексте»

textual
Листинг программы
unsigned numberstring(const char* s){
    unsigned m = 0, n = 0;
    while(*s){
        if(*s == '\n'){
            ++n;
            if(m && !*(s + 1))
                ++n;
            m = 0;
        } else
            m = 1;
        ++s;
    }
    return n + m;
}
 
//...
 
printf("count lines: %u\n", numberstring("...") );

Объяснение кода листинга программы

  1. В функции numberstring(const char* s) происходит подсчет количества строк в тексте, представленном в виде строки s.
  2. В функции используются две переменные: m и n. Переменная m отслеживает, была ли ранее встречена символом '\n', а переменная n отслеживает количество строк.
  3. Используется цикл while(*s), который выполняется до тех пор, пока есть символы в строке s.
  4. Если текущий символ равен '\n', то увеличивается значение переменной n. Если после текущего символа нет больше символов, то к значению переменной n добавляется единица. Затем значение переменной m сбрасывается в ноль.
  5. Если текущий символ не равен '\n', то значение переменной m устанавливается в единицу.
  6. После каждой итерации цикла увеличивается значение переменной s на единицу.
  7. В конце функции возвращается сумма значений переменных n и m.
  8. В приведенном примере вызывается функция numberstring с аргументом .... Результат ее работы выводится на экран с помощью функции printf.

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы