Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 18:51   #1
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию [C] Удалить из строки самое длинное слово

В символьной строке удалить самое длинное слово.
Не использовать дефолтные функции работы со строками (например strstr, strlen).

Нашел слово определил его границы (begin, end), осталось удалить...
Подскажите пожалуйста как это сделать.

Код:
#include <stdio.h>
#include <stdlib.h>
//#define n 35

int main()
{

char *mas;
int cur;
int temp=0,begin=0,end=0;

mas = (char*)malloc(100 * sizeof(char));
if (mas == NULL) 
{
	printf("Error");
}

puts("enter string");
gets(mas);

cur=0; //позиция
while (mas[cur]!='\0')
{
if  ((mas[cur]==' ')||(mas[cur+1]=='\0')) //нахождение самого длинного
	if (cur-temp>=end-begin)
	{
		begin=temp;
		end=cur;
		temp=cur;

	}
    else temp=cur;
cur++;
}

	
printf("begin: %d, end: %d \n",begin,end);
printf("\n");


//здесь должно быть удаление слова


printf("result:\n");
puts(mas);
printf("\n");
free(mas);
	return 0;
}

Последний раз редактировалось onewho; 29.09.2010 в 18:53.
onewho вне форума Ответить с цитированием
Старый 29.09.2010, 18:52   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

как тут код выделить
onewho вне форума Ответить с цитированием
Старый 29.09.2010, 20:32   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

уже сам решил...
length=end-begin;
if (begin==0)
for(cur=end;mas[cur]!='\0';cur++)
mas[cur-(length)]=mas[cur+1];
else
if (mas[end+1]=='\0')
for(cur=end;mas[cur+1]!='\0';cur++)
mas[cur-(length)]=mas[cur];
else
for(cur=end;mas[cur]!='\0';cur++)
mas[cur-(length)]=mas[cur];
mas[cur-(length)]='\0';
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти самое длинное симметричное слово Си++ xVeteRx Помощь студентам 3 10.04.2009 21:25
заменить самое длинное слово, на самое короткое в Delphi сер4ей Помощь студентам 5 05.03.2009 18:40
Вывести самое длинное слово (Си) ManInBlack Помощь студентам 10 19.01.2009 00:17
С++ Найти самое длинное слово строки k0z7_g0b1in Общие вопросы C/C++ 3 22.04.2007 17:37