Удалить из текста слова определенной длины - C (СИ)
Формулировка задачи:
Удалить из текста все слова короче 4 символов, а слова длиннее 7 символов заменить на указанное пользователем слово. Строки, в которых не было замен, расположить перед строками, в которых замены были. Вывести полученный текст на экран.
Буду очень благодарен даже за незначительную помощь.
Решение задачи: «Удалить из текста слова определенной длины»
textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
#define MAXLINE 86
#define MAXSTR 15
int main(void)
{
int i=0,lg[16],j=0,i2=0;
char txt[MAXSTR][MAXLINE],sep[6],s[MAXSTR][MAXLINE];
char *word;
puts("Enter array of separators: \n");
scanf("%s",sep);
puts("Enter text: \n");
while(i<MAXSTR)
{
scanf("%s",txt[i]);
i2=0;
j=strlen(txt[i]);
while(j>0)
{
s[i][i2]=txt[i][j-1];
i2=i2+1;
j=j-1;
}
s[i][i2]='\0';
if (strlen(txt[i])==strlen(txt[i-1]))
{
if (strcmp(strtok(s[i],sep),strtok(s[i-1],sep))==0)
{break;}
}
i=i+1;
};
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде определен массив символов sep, в который пользователю предлагается ввести разделительы для слов. Затем, после ввода текста, код разбивает каждый введенный текст на слова и сохраняет их в массиве s. Если два последовательных слова имеют одинаковую длину и их первые слова совпадают после применения разделителя, то второе слово удаляется из массива. В конце пользователю предлагается нажать любую клавишу для выхода из программы.