Разделить предложение на слова и каждому слову присвоить порядковое число - C (СИ)
Формулировка задачи:
как разделить предложение на слова и каждому слову присвоить порядковое число а затем по тому числу слово забрать?
Решение задачи: «Разделить предложение на слова и каждому слову присвоить порядковое число»
textual
Листинг программы
#include <stdio.h> void rem_word(char *sen, int n); int main(void) { char sentence[81]; int number; puts("Enter a sentence."); fgets(sentence, 80, stdin); printf("Number of words to remove: "); scanf("%i", &number); int i, arr[number]; printf("Positions: "); for (i=0; i<number; ++i) scanf("%i", &arr[i]); for (i=number-1; i>=0; i--) rem_word(sentence, arr[i]); printf("%s", sentence); return 0; } void rem_word(char *sentence, int number) { int i, pos, state; int beginning=-1, end=-1; for (i=0, pos=0, state=0 ; sentence[i]; i++) { if (sentence[i]==' ') state = 0; else if (state == 0) { state = 1; pos++; if (beginning>=0 && end==-1) end = i; if (pos == number) beginning = i; } } if (beginning>=0 && end==-1) end = --i; if (beginning>=0 && end>beginning) { end = end - beginning; i = beginning; do { sentence[i] = sentence[i+end]; } while (sentence[i++]); } }
Объяснение кода листинга программы
В этом коде:
- Вводится предложение с помощью функции
fgets()
. - Затем пользователю предлагается ввести количество слов, которые необходимо удалить.
- После этого программа просит ввести позиции этих слов.
- Используя эти позиции, функция
rem_word()
удаляет указанные слова из предложения. - Наконец, измененное предложение выводится с помощью функции
printf()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д