Подсчитать количество букв в третьем слове и добавить пробел после каждой буквы третьего слова - 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; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные:
str
иp
.str
является массивом символов, содержащим исходную строкуany many money more
.p
является указателем на первый символ в массивеstr
.
- Переменная
len
инициализируется значением 0 и используется для хранения длины третьего слова. - Переменная
nword
инициализируется значением 0 и используется для подсчета количества слов в исходной строке. - Используется функция
strtok
для разделения исходной строки на слова.strtok
принимает два аргумента: строку, которую нужно разбить на слова, и разделитель (в данном случае пробел, табуляция и символ новой строки).- В цикле
for
происходит поиск следующего слова в строке. - Если текущее слово является третьим словом (индекс
nword
равен 2), то:- Длина текущего слова сохраняется в переменной
len
. - С помощью цикла
while
и оператораprintf
каждое символы текущего слова выводится на экран с добавлением пробела.
- Длина текущего слова сохраняется в переменной
- Если текущее слово не является третьим словом, то оно выводится на экран без изменений.
- После окончания цикла
for
выводится сообщение о длине третьего слова. - В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д