В заданной строке поменять последнее слово и слово с указанным номером - C (СИ)
Формулировка задачи:
В строке нужно поменять последнее слово и слово,номер которого указывается(если слова с таким номером нет,то строка не изменяется)
Решение задачи: «В заданной строке поменять последнее слово и слово с указанным номером»
textual
Листинг программы
char *replace(char *str, char *newWord, int number) { char *curWord, *newStr = calloc(sizeof(char), (strlen(str)+strlen(newWord)+1)); int count = 1; curWord = strtok(str, " "); while(curWord != NULL) { strcat(newStr, " "); if((count++) == number) { strcat(newStr, newWord); curWord = strtok(NULL, " "); continue; } strcat(newStr, curWord); curWord = strtok(NULL, " "); } return newStr; }
Объяснение кода листинга программы
В данном коде реализована функция replace, которая принимает на вход три параметра:
- str - строку, в которой необходимо произвести замену.
- newWord - новое слово, которое необходимо вставить в строку.
- number - номер слова в строке, которое необходимо заменить. Список действий, которые происходят в коде:
- Выделяется память под новую строку newStr с помощью функции calloc. Размер памяти определяется как сумма длин исходной строки str и нового слова newWord, плюс один символ для пробела.
- Инициализируется переменная count, которая отслеживает количество слов в исходной строке.
- С помощью функции strtok начинается разбиение исходной строки на слова. Выделяется первое слово и добавляется в новую строку newStr.
- Добавляется пробел после первого слова.
- Проверяется условие (count == number). Если это так, то выполняется замена слова.
- Добавляется новое слово вместо слова с указанным номером.
- Продолжается цикл, пока не будут обработаны все слова в исходной строке.
- Возвращается новая строка newStr.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д