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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 02:07   #1
Julia1
Пользователь
 
Регистрация: 03.02.2014
Сообщений: 14
Вопрос Необходимо найти самое длинное слово и удалить все его вхождения

самое длинное слово я нахожу, но вот как его удалить?
Код:
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;
 
int main();
int _tmain(int argc, _TCHAR* argv[])
{
    char string[200];
 
    cout << "vvedite stroky:\n";
    cin.getline(string,200);
 
    char * slovo = strtok (string," "),  // получаем первое слово
         * word = 0; // самое длинное слово
 
    int length = strlen(slovo);          // определяем длинну первого слова
 
    int max = 0; // самое длинное слово
 
      while (slovo != NULL)                         // пока есть слова
      {
          length = strlen(slovo);        // определяем длинну слова
 
          if (max < length )        // определяем самое длинное слово
          {
              max = length;
              word = slovo;              // сохраняем указатель на текущее слово
          }
 
          slovo = strtok (NULL, " "); // получаем следующее слово
      }
 
      cout << "samoe dlinnoe slovo: " << word
           << " , ego dlinna ravna: " << max
           << " simvolam " << endl;
    return 0;
}
Julia1 вне форума Ответить с цитированием
Старый 30.06.2014, 11:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Или переписать все в новый массив или забить его проблеми.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 22:12   #3
Julia1
Пользователь
 
Регистрация: 03.02.2014
Сообщений: 14
По умолчанию

вот так я попыталась написать, но работать он так и не начал правильно... помогите исправить
Код:
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
 int main();

int _tmain(int argc, _TCHAR* argv[])
{std::string mystring;
	char s[200];
 
    cout << "vvedite stroky:\n";
    cin.getline(s,200);
 string str(s);
    char * slovo = strtok (s," "),  // получаем первое слово
         * word = 0; // самое длинное слово
 
    int length = = 0; // самое длинное слово
 
      while (slovo != NULL)                         // пока есть слова
      {
          length = strlen(slovo);        // определяем длинну слова
 
          if (max < length )        // определяем самое длинное слово
          {
              max = length;
              word = slovo;              // сохраняем указатель на текущее слово
          }
 
          slovo = strtok (NULL, " "); // получаем следующее слово
      }strlen(slovo);          // определяем длинну первого слова
 
    int max 
 
      cout << "samoe dlinnoe slovo: " << word
           << " , ego dlinna ravna: " << max
           << " simvolam " << endl;
	 size_t i;
	 

while((i = str.find(word)) != string::npos) str.replace(i, strlen(word), "");
cout<< "polyhim:"<<s;

	
	return 0;
}

Последний раз редактировалось Julia1; 30.06.2014 в 22:13. Причина: некоректное обращение
Julia1 вне форума Ответить с цитированием
Старый 30.06.2014, 22:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рискну предложить такое:
Код:
	string s; cin>>s;
	string a[100];
	int cnt=0,imax=0;
	for(int i=0;i<s.length();i++)	{
               if(s[i]==' '){
                 imax=(a[imax].length()<a[cnt].length())?cnt:imax;
                 cnt++;
               } else  	a[cnt]+=s[i];
        }

	for(int i=0;i<=cnt;i++){if(i!=imax) printf("%s ",a[i].c_str());};
	cin.get();
	return 0;
не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# найти самое длинное и самое короткое слово в строке и вывести их Зеленый Чай Помощь студентам 4 06.01.2012 18:40
[C] Удалить из строки самое длинное слово onewho Помощь студентам 2 29.09.2010 20:32
найти самое короткое слово и удалить его из файла Pihan Помощь студентам 2 18.06.2009 23:03
С++ Найти самое длинное слово строки k0z7_g0b1in Общие вопросы C/C++ 3 22.04.2007 17:37