Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 145
#1

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

10.12.2013, 13:52. Просмотров 1375. Ответов 5
Метки нет (Все метки)

Задано предложение-строка. Написать программу, которая находит самое длинное слово, встречающееся в предложении.
когда ввожу строку, а в ней слова через пробел, так он читает только первое слово
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 13:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая находит самое длинное слово, встречающееся в предложении (C++):

Найдите самое длинное, и самое короткое слово в заданном предложении - C++
Найдите самое длинное и самое короткое слово в заданном предложении.

Найти самое длинное и самое короткое слово в предложении - C++
Составить и отладить программу, которая выполняет следующие действия. В заданном тексте из нескольких предложений найти самое длинное и...

Написать программу которая находит целую часть от деления длинного числа на длинное - C++
Оба числа находятся в массивах. И ответ тоже. Деление столбиком.

Написать программу, которая находит самое большое число из текста программы - C++
Программа должна найти самое большое число из текста программы(числа рассматриваются только целые). Главное затруднение: как сканировать...

Найти самое длинное слово в предложении и напечатать его в обратном виде - C++
Подскажите, пожалуйста, где ошибка в этом коде и как её исправить. Заранее спасибо ! #include <cstring> #include <iostream> using...

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

5
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
10.12.2013, 13:55 #2
1.
C++
1
2
char s[100];
std::cin.getline(s, sizeof(s));
2.
C++
1
2
3
4
#include <string>
//...
std::string s;
std::getline(std::cin, s);
1
kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 145
10.12.2013, 14:04  [ТС] #3
а так будет работать? а то комп дико тормозит(
#include <iostream>
using namespace std;
int main()
{
char s[100];
cin.getline(s, sizeof(s));

cout<<"Vvedite stroku " <<endl;
cin>> s[100];
cout<<s[100] <<endl;

return 0;
}

Добавлено через 3 минуты
Цитата Сообщение от rangerx Посмотреть сообщение
1.
C++
1
2
char s[100];
std::cin.getline(s, sizeof(s));
2.
C++
1
2
3
4
#include <string>
//...
std::string s;
std::getline(std::cin, s);
а так будет работать? а то комп дико тормозит(
#include <iostream>
using namespace std;
int main()
{
char s[100];
cin.getline(s, sizeof(s));

cout<<"Vvedite stroku " <<endl;
cin>> s[100];
cout<<s[100] <<endl;

return 0;
}
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
10.12.2013, 14:13 #4
C++
1
2
3
4
5
6
7
8
// объявляем строку максимальная длина которой 99 символов, +1 символ под '\0'(признак конца строки)
char s[100]; 
 
// вводим строку с клавиатуры
cin.getline(s, sizeof(s));
 
// выводим её на экран
cout << s << endl;
1
kornelyk
1 / 1 / 0
Регистрация: 07.01.2012
Сообщений: 145
10.12.2013, 14:14  [ТС] #5
спасибо) с этим разобралась а не подскажете как подсчитать самое длинное слово?
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
10.12.2013, 17:09 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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;
  }
}
4
10.12.2013, 17:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 17:09
Привет! Вот еще темы с ответами:

Строки. В заданном тексте найти самое длинное слово и самое длинное предложение. - C++
Задача: В заданном тексте найти самое длинное слово и самое длинное предложение. Помогите решить На СИ++ в Visual Studio.

Найти в тексте самое длинное слово и самое длинное предложение - C++
вписать текст с клавиатуры и найти в этом тексте самое длинное слово и самое длинное предложение.Предложения должны быть разделены точкой.

Количество букв в слове, количество предложений, самое длинное слово в предложении - C++
Как написать прогу, которая бы указывала количество букв в слове, вводимое пользователем, количество предложений, самое длинное слово в...

В заданном предложении поменять местами самое длинное и самое короткое слова - C++
В заданном предложении поменять местами самое длинное и самое короткое слова. Считать, что слова в тексте отделены друг от друга одним...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.