Удалить два последним слова из строки, в которой слова разделяются одним или несколькими пробелами - C (СИ) (77854)

Узнай цену своей работы

Формулировка задачи:

работа со строками! задача: удалить два последним слова из строки, в которой слова разделяются одним или несколькими пробелами я писала программу для слов разделяющихся одним пробелом Код C
#include <stdio.h>
#include <string.h>
 
int main(void)
{
      char *s;
      char delimiter = ' ';
      int i;
 
   printf ("vvedite stroku:   ");
   gets(s);       // считываем введенную строку, заносим в string
    {for (i = strlen(s); *(s+i) != delimiter && i; i--);
    s[i]='\0';
    }
    {for (i = strlen(s); *(s+i) != delimiter && i; i--);
    s[i]='\0';
    }
   printf ("stroka bez dvuh slov   ");
   printf("%s\n", s); // выводим полученную строку
   return 0;
   getch();
}
как можно переписать эту задачу с функцией strtok()? или еще как нибудь, подскажите пожалуста

Решение задачи: «Удалить два последним слова из строки, в которой слова разделяются одним или несколькими пробелами»

textual
Листинг программы
    
short count = 0;
char delimiter = ' ';
char *c;
for (c = s + strlen(s)-2; c != s; c--)
        if(*c == delimiter && *(c+1) != delimiter)
            if(++count == 2) break;
 
    *c = '\0';

Объяснение кода листинга программы

  1. Объявляются переменные: — count (количество слов, которые необходимо удалить) — delimiter (разделитель, в данном случае пробел) — c (указатель на текущий символ в строке)
  2. Начинается цикл, который проходит по строке в обратном направлении
  3. В каждой итерации проверяется текущий символ и следующий за ним. Если текущий символ является разделителем и следующий за ним символ не является разделителем, то увеличивается счетчик words_to_delete и происходит переход к следующей итерации.
  4. Если количество слов, которые необходимо удалить, равно 2, то цикл прерывается.
  5. В конце цикла, последнему символу в строке присваивается значение разделителя, чтобы закрыть строку.

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


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

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

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