После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить - C (СИ)
Формулировка задачи:
После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели.
Если честно, я без понятия, как это сделать, поэтому показывать мне нечего, ребят (разве что прототип функции).
Решение задачи: «После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить»
textual
Листинг программы
- // После каждой буквы предпоследнего слова вставить символ '*'.
- // Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели.
- #include <stdio.h>
- #include <string.h>
- #define DELIM " ,.?!\n\t"
- char* next_to_last(char* str)
- {
- char* end = &str[strlen(str)];
- while (*end == ' ') end--;
- while (*end != ' ') end--;
- while (*end == ' ') end--;
- while (*end != ' ') end--;
- end++;
- return end;
- }
- char* f(char* buf)
- {
- buf[80] = 0;
- for(char* word = next_to_last(buf); !strchr(DELIM, *word); word++) {
- for (char* ptr = &word[strlen(word)]; ptr>word; ptr--) {
- *(ptr+1) = *ptr;
- }
- *++word = '*';
- }
- return buf;
- }
- int main(void)
- {
- char buf[BUFSIZ];
- gets(buf);
- f(buf);
- puts(buf);
- return 0;
- }
Объяснение кода листинга программы
- В начале кода подключаются необходимые библиотеки: stdio.h для работы с вводом/выводом, string.h для работы со строками.
- Определяется строка-разделитель DELIM, которая будет использоваться для разделения исходной строки на слова.
- Функция next_to_last() находит позицию предпоследнего слова в строке.
- Функция f() принимает на вход указатель на последнее слово в строке (buf) и добавляет символ '*' после каждой буквы предпоследнего слова.
- В функции main() вводится строка, затем вызывается функция f() для обработки этой строки.
- Результат выводится на экран с помощью функции puts().
- В конце программы возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д