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

Написать программу, которая находит самое длинное слово, встречающееся в предложении - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка при отладке программы http://www.cyberforum.ru/cpp-beginners/thread1035734.html
Недавно начал заниматься на С++ по книге "Дейтел Х. Дейтел П. - Как программировать на C++", и столкнулся с такой проблемкой, ввожу самый простейший код, как и показано в книге: #include <iostream.h> main() { cout << "Добро пожаловать c С++"; return 0; }
C++ Почему не запускается программа? #include <iostream> #include <cstring> #include <cmath> using namespace std; class Muscleman { // объявление класса public: Muscleman(const char *nm, double a_w); // объявление конструктора Muscleman(const Muscleman &n); http://www.cyberforum.ru/cpp-beginners/thread1035701.html
C++ Удалить из бинарного дерева всех отцов, имеющих одного сына
Написала класс по работе с бинарным деревом. Помогите, пожалуйста, написать функцию по удалению из дерева всех однодетных отцов. Сижу уже над этой функцией 2 недели. Заранее извиняюсь за кривой код. Функция del в коде ниже. #include <stdio.h> #include <stdlib.h> class tree { private: struct list
Предусмотреть просмотр номеров маршрутов по названию остановки C++
Схему автобусных маршрутов города представить структурой типа граф. Узлы структуры соответствуют остановкам автобусных маршрутов и дополнительно включают название остановок. Предусмотреть просмотр номеров маршрутов по названию остановки.
C++ Задача на строки http://www.cyberforum.ru/cpp-beginners/thread1035691.html
Задача:Дано предложение. Напечатать все символы, расположенные между первой и второй запятой. Если второй запятой нет, то должны быть напечатаны символы, расположенные после первой запятой. Ошибка: error C2665: strstr: ни одна из 2 перегрузок не может преобразовать все типы аргументов 13 error C2665: strstr: ни одна из 2 перегрузок не может преобразовать все типы аргументов 17 void...
C++ Работа с unordered_map очень прошу помочь! имеется вот такой код: struct LOCATION { DATA_TYPE type; unsigned int pos; }; typedef std::unordered_map<unsigned int, LOCATION> IDToLOCATIONMap; IDToLOCATIONMap essence_id_index_map; подробнее

Показать сообщение отдельно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
10.12.2013, 17:09     Написать программу, которая находит самое длинное слово, встречающееся в предложении
Цитата Сообщение от kornelyk Посмотреть сообщение
а не подскажете как подсчитать самое длинное слово?
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
42
#include <iostream>
 
using namespace std;
 
struct Token {
  char* p; // указатель на вхождение слова в строку
  int n;   // длина слова
};
 
int main() {
  char s[100];
  cin.getline(s, sizeof(s));
 
  int n = 0;
  char* p = s;
  Token tk = {NULL, 0};
 
  while(true) {
    // перемещаем указатель к следующему слову
    while((*p != '\0') && (*p == ' '))
     ++p;
    // если дошли до конца строки и ничего не нашли, завершаем цикл
    if(*p == '\0')
      break;
    // вычисляем длину текущего слова...
    n = 0;
    while((p[n] != '\0') && (p[n] != ' '))
     ++n;
    // ... и сравниваем её с длиной слова наибольшего на данный момент
    if(tk.n < n) {
      // если она оказалось больше, то текущее слово на данном этапе запоминается как наибольшее
      tk.p = p; tk.n = n;
    }
    // пропускаем текущее слово и продолжаем поиск...
    p += n;
  }
 
  cout << "Result: ";
  for(int i = 0; i < tk.n; ++i)
    cout << tk.p[i];
  cout << '\n';
}
Добавлено через 4 минуты
Естественно, предполагается, что слова разделены пробелами.

Добавлено через 1 час 0 минут
ну и ещё вариант, без использования бесконечного цикла и break
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while(*p != '\0') {
  if(*p == ' ')
   ++p;
  else {
    n = 0;
    while((p[n] != '\0') && (p[n] != ' '))
     ++n;
    if(tk.n < n) {
      tk.p = p; tk.n = n;
    }
    p += n;
  }
}
 
Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru