Форум программистов, компьютерный форум CyberForum.ru

Максимальное слово - C++

Восстановить пароль Регистрация
 
Vitek4
16 / 16 / 0
Регистрация: 16.04.2010
Сообщений: 161
30.01.2014, 17:07     Максимальное слово #1
В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-, найти слово максимальной длины;
Программа должна обрабатывать любое количество вариантов данных.
Добрый вечер помогите пожалуйста решить эту задачу. Очень срочно нужно.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 17:07     Максимальное слово
Посмотрите здесь:

Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) C++
C++ Найти слово, один и тот же символ в котором встречается максимальное число раз
Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). C++
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово. C++
C++ В тексте заменить слово А(любое слово) на слово В(любое слово). А и В разной длинны
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
maria_
5 / 5 / 1
Регистрация: 25.08.2013
Сообщений: 67
30.01.2014, 17:33     Максимальное слово #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
 
using namespace std;
 
int main()
{
  int maxlen = 0;
  char* result;
  char* maxresult;
  result = (char*)malloc(100*sizeof(char));
  maxresult = (char*)malloc(100*sizeof(char));
  int len = 0;
  char c= ' ';
  while ('\n' != c)
  {
    c = getchar();
    if ( ( ' ' != c ) && ( '\n' != c ) )
    {
      result[len] = c;
      ++len;
    }
    else
    {
      if(maxlen < len)
      {
        maxlen = len;
        for (int j=0; j < len; ++j)
        {
          maxresult[j] = result[j];
        }
      }
      len = 0;
    }
  }
  for (int i = 0; i < maxlen; ++i )
  {
    cout << maxresult[i];
  }
  cout << endl;
  return 0;
}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
30.01.2014, 17:38     Максимальное слово #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
 
char *getMaxWord(char *string, const char *delims)
{
    char *pWord = strtok(string, delims);
    if (pWord) {
        char *pOtherWord = getMaxWord(0, delims);
        if (pOtherWord && strlen(pOtherWord) > strlen(pWord))
            pWord = pOtherWord;
    }
    return pWord;
}
 
int main()
{
    const char *delims = " .,;?!:[]";
    char string[128];
    gets(string);
    printf("Word with max len: %s\n", getMaxWord(string, delims));
    return 0;
}
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
30.01.2014, 17:48     Максимальное слово #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <sstream>
 
int main()
{
    std::string st, tmp_word, max_word;
    std::cout << "enter string: ";
    getline(std::cin, st);
    std::istringstream ist(st);
    while (ist >> tmp_word)
    {
        if (tmp_word.size() >= max_word.size())
            max_word = tmp_word;
    }
    std::cout << max_word << std::endl;;
    system("pause");
}
Vitek4
16 / 16 / 0
Регистрация: 16.04.2010
Сообщений: 161
30.01.2014, 17:55  [ТС]     Максимальное слово #5
Всем спасибо но уже разобрался малость. И с вою написал.
Yandex
Объявления
30.01.2014, 17:55     Максимальное слово
Ответ Создать тему
Опции темы

Текущее время: 10:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru