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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
#define WORD_NUMBER 3
 
int main(void) {
    char str[] = "any many money more", * p;
    int len = 0, nword = 0;
 
    for ( p = strtok(str, DELIM); p; p = strtok(NULL, DELIM) ) {
        if ( ++nword == WORD_NUMBER ) {
            len = strlen(p);
            while ( *p )
                printf("%c ", *p++);
        }
        else
            printf("%s ", p);
    }
    printf("\nLength of %d-th word %d characters.\n", WORD_NUMBER, len);
 
    return 0;
}

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

В этом коде:

  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
Похожие ответы