0 / 0 / 0
Регистрация: 20.06.2016
Сообщений: 8
1

Найти максимальное слово в строке

20.06.2016, 11:22. Показов 4259. Ответов 2
Метки нет (Все метки)

Программа правильно определяет длину слов, но почему-то она проверяет только первое слово, но дальше по строке не идет. Причем, если убрать k=0; она проверяет все слова. Надеюсь на вашу помощь и прошу прощения за кривокод.
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
#include <stdio.h> 
#include <string.h> 
#include <iostream>
using namespace std;
int main() 
{ 
     int i,ii=0,k=0,maxk=0,n,slovo=0; 
     char str[] = " string this is Beautiful";
     printf("%s\n",str); 
     n = strlen(str); 
     for(i=0;i<n-1;i++) 
     { 
          if(str[i]!=' ') 
          {  
               k++; 
          } 
          
          else if(str[i]==' ') 
          { 
               if(k>maxk)
               {
                    maxk=k;
                    ii=i;    
                    printf("ii=%i maxk=%i\n",ii,maxk);
               }
               k=0;
          }
     } 
     printf("\nMax dlina slova: %i\nSlovo max dliny: ",maxk);
     for(i=ii-maxk;i<ii;i++)
          printf("%c",str[i]); 
cin.get();
return 0; 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2016, 11:22
Ответы с готовыми решениями:

Максимальное слово в строке
Всем привет! Не получается вывести максимальное слово в строке. Функцию strtok использовать нельзя!...

Найти минимальное и максимальное слово в строке
Есть код программы, которая ищет минимальное слово в строке, что нужно добавить в этот код, что бы...

Найти в строке слово, встречающееся максимальное количество раз
Помогите пожалуйста, не справляюсь! Дана строка str. Найти в ней слово, встречающееся...

Максимальное слово в строке
Ввести строку длиной до 70 символов, вывести на печать самое длинное слово этой строки. Как...

2
257 / 234 / 185
Регистрация: 02.04.2016
Сообщений: 898
20.06.2016, 12:04 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
using namespace std;
int main() {
 
    int max = -1, k = 0;
    string s = "string this is Beautiful";
    for (int i = 0; i < s.length(); i++) {
        if ((s[i] == ' ') || (i == s.length()-1)) {
            cout << "Длина = " << k << endl;
            if (k > max)
                max = k;
            k = 0;
        }
        else k++;
    }
    cout << "Максимальная длина = "<< max;
 
    return 0;
}
0
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 792
20.06.2016, 12:18 3
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
#include <stdio.h> 
#include <string.h> 
#include <iostream>
using namespace std;
int main()
   {
   size_t max = 0;
   char str[] = " string this is Beautiful";
   char *word = nullptr;
   char *maxWord = nullptr;
   cout << str << endl;
   word = strtok(str, " ,.-!?");
   while (word != nullptr)
      {
      auto tmpLen = strlen(word);
      if (max < tmpLen)
         {
         max = tmpLen;
         maxWord = word;
         }
      word = strtok(nullptr, " ,.-!?");
      }
   cout << "\nMax dlina slova: " << max << "\nSlovo max dliny: " << maxWord;
   cin.get();
   return 0;
   }
Добавлено через 6 минут
shilko2013 если уж писать через string то я бы использовал чего то типа следующего:
C++
1
2
3
4
5
6
7
8
9
vector<string> split(const string &s, char delim) {
    stringstream ss(s);
    string item;
    vector<string> tokens;
    while (getline(ss, item, delim)) {
        tokens.push_back(item);
    }
    return tokens;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2016, 12:18
Помогаю со студенческими работами здесь

Вывести минимальное и максимальное слово в исходной строке
Вывести минимальное и максимальное слово в исходной строке. Это вроде вроде просто, но не могу...

Найти максимальное слово, минимальное слово и посчитать на сколько букв минимальное короче максимального
здесь не пашет 3 процедура ! в ней надо найти максимальное слово , минимальное слово и посчитать на...

Найти первое слово после запятой и предпоследнее слово в строке.
Нужно написать регулярное выражение, которое находит первое слово после запятой и предпоследнее...

Найти в строке самое длинное слово, вывести это слово и его длину
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите это слово и его длину....

В заданной строке найти самое длинное слово и вывести это слово и его длину
В заданной строке найти самое длинное слово и вывести это слово и его длину

Найти максимальное по длине слово
В первый раз решила обратиться к вам за помощью, бьюсь с этой задачей целую неделю, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru