Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы третьего слова - C (СИ)

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

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

Дано задание. "Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы третьего слова." Обработку строки реализовать с помощью функций, описанных в <string.h> и с использованием указателей. Как его сделать через массив символов я знаю, а вот через указатели и функции что-то не догоняю. Помогите пожалуйста сделать, либо хотя-бы направьте в каком русле думать!))

Решение задачи: «Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы третьего слова»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define DELIM " \t\n"
  5. #define WORD_NUMBER 3
  6.  
  7. int main(void) {
  8.     char str[] = "any many money more", * p;
  9.     int len = 0, nword = 0;
  10.  
  11.     for ( p = strtok(str, DELIM); p; p = strtok(NULL, DELIM) ) {
  12.         if ( ++nword == WORD_NUMBER ) {
  13.             len = strlen(p);
  14.             while ( *p )
  15.                 printf("%c ", *p++);
  16.         }
  17.         else
  18.             printf("%s ", p);
  19.     }
  20.     printf("\nLength of %d-th word %d characters.\n", WORD_NUMBER, len);
  21.  
  22.     return 0;
  23. }

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

В этом коде:

  1. Объявлены две переменные: str и p.
    • str является массивом символов, содержащим исходную строку any many money more.
    • p является указателем на первый символ в массиве str.
  2. Переменная len инициализируется значением 0 и используется для хранения длины третьего слова.
  3. Переменная nword инициализируется значением 0 и используется для подсчета количества слов в исходной строке.
  4. Используется функция strtok для разделения исходной строки на слова.
    • strtok принимает два аргумента: строку, которую нужно разбить на слова, и разделитель (в данном случае пробел, табуляция и символ новой строки).
    • В цикле for происходит поиск следующего слова в строке.
    • Если текущее слово является третьим словом (индекс nword равен 2), то:
      • Длина текущего слова сохраняется в переменной len.
      • С помощью цикла while и оператора printf каждое символы текущего слова выводится на экран с добавлением пробела.
    • Если текущее слово не является третьим словом, то оно выводится на экран без изменений.
  5. После окончания цикла for выводится сообщение о длине третьего слова.
  6. В конце программы возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы