В заданной строке поменять последнее слово и слово с указанным номером - 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, которая принимает на вход три параметра:

  1. str - строку, в которой необходимо произвести замену.
  2. newWord - новое слово, которое необходимо вставить в строку.
  3. number - номер слова в строке, которое необходимо заменить. Список действий, которые происходят в коде:
  4. Выделяется память под новую строку newStr с помощью функции calloc. Размер памяти определяется как сумма длин исходной строки str и нового слова newWord, плюс один символ для пробела.
  5. Инициализируется переменная count, которая отслеживает количество слов в исходной строке.
  6. С помощью функции strtok начинается разбиение исходной строки на слова. Выделяется первое слово и добавляется в новую строку newStr.
  7. Добавляется пробел после первого слова.
  8. Проверяется условие (count == number). Если это так, то выполняется замена слова.
  9. Добавляется новое слово вместо слова с указанным номером.
  10. Продолжается цикл, пока не будут обработаны все слова в исходной строке.
  11. Возвращается новая строка newStr.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы