Изменить порядок следования слов в тексте на противоположный - C (СИ)
Формулировка задачи:
1) Реализовать функцию:
int calcWordsCount(const char *text, const char *word, int startFrom = 0);
которая подсчитывает количество повторений заданного слова в заданном тексте. При это поиск начинается с заданной позиции.
Функция должна использовать функцию findWord из предыдущего ДЗ.
2) Реализовать функцию:
void replaceWords(char *text, const char *findWhat, const char *replaceWith);
которая заменяет все вхождения заданного слова в заданном тексте другим словом, переданным ей в качестве параметра.
Функция должна использовать функцию findWord из предыдущего ДЗ.
3) Реализовать функцию:
void reverseWords(char *text);
которая изменяет порядок следования слов в тексте на противоположный.
(Слова разделены только пробелами).
P.S. Ребят, помогите решить несколько задач. Заранее благодарен.
Решение задачи: «Изменить порядок следования слов в тексте на противоположный»
textual
Листинг программы
int findWord(const char *text, const char *word, int startFrom){
for (int i = startFrom; text[i]; i++){
if (text[i] == word[0]){
bool f = true;
for (int j = 1; word[j]; j++){
if (text[i + j] != word[j]) {
f = false;
break;
}
}
if (f) return i;
}
}
return -1;
}
Объяснение кода листинга программы
- Функция
findWordпринимает три аргумента:text(строка, в которой нужно найти слово),word(слово, которое нужно найти) иstartFrom(откуда начать поиск, 0 - поиск с начала строки). - Используется цикл
for, который начинается сstartFromи идет до конца строкиtext. - Внутри цикла проверяется, совпадает ли первый символ текущего слова в строке
textс первым символом словаword. - Если совпадение найдено, переменной
fприсваивается значениеtrue, иначеfalse. - Далее, в цикле
forпроверяются все последующие символы словаword. Если текущий символ в строкеtextне совпадает с ним, то переменнаяfприравнивается кfalseи цикл прерывается с помощью оператораbreak. - Если все символы слова
wordсовпадают с символами в строкеtext, то функция возвращает индекс первого символа слова в строкеtextс помощью оператораreturn. - Если слово не найдено, функция возвращает
-1.