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

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

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

Самое длинное слово и его позиция - C++

14.03.2014, 21:19. Просмотров 262. Ответов 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include "conio.h"
#include "stdio.h"
#include "locale.h"
#include <string>
 
using namespace std;
 
int main(){
 
    setlocale(0,"russian");
    int i=0;
    int mlen = 0;
    char *ch = new char[100];
 
    cout << "Введите строку:\n";
    gets(ch);
 
    char *x[100] = {0}; 
    
    char *fs = strtok (ch," "),  *word = 0 ;
    int len = strlen(ps);
 
    while (fs != NULL) {                            // нахождение самого длинного слова
 
                        len = strlen(fs);
                        if (mlen < len ) {
                                                mlen = len;
                                                word = fs;
 
                        }
          fs = strtok (NULL, " ");
 
    }
 
    cout << "Слово максимальной длинны " << word;
 
    char *fs1 = strtok(ch, " ");
 
    while(fs1!=NULL)
        {
            x[i] = p;
            i++;
            fs1 = strtok(NULL, " ");
        }
 
        i = 0;
        cout << endl << endl << "Massiv sostoit iz:\n";
        while(x[i] != 0)
        {
            cout << x[i++] << "\n";
        }
 
    return 0;
}
буду благодарен за помощь
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Самое длинное слово и его позиция (C++):

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

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

Найти самое длинное слово в тексте и количество его повторений - C++
Использовать только функции cstdio В чём ошибка? Выводит не самое длинное слово, а определенное кол-во символов с начала текста ...

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

Необходимо найти самое длинное слово и удалить все его вхождения - C++
самое длинное слово я нахожу, но вот как его удалить? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstring&gt; using...

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

2
Voroshek
6 / 6 / 1
Регистрация: 22.08.2011
Сообщений: 75
14.03.2014, 22:58 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Здоров, недавно дочитал учебник до stringstream и теперь сую его куда надо и куда не надо.
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 <sstream>
#include <cstring>
#include <iostream>
 
using std::string;
using std::stringstream;
using std::cout;
using std::endl;
 
int main()
{
    // строку я задал готовую ;-)
    string s = "Sorok tysach obezian v dupu sunuli banan";
    stringstream ss(s);
    int x = 1; // здесь храним номер последнего наибольшего слова
    int y = 1; // здесь будем их считать
    string word= ""; // а здесь само слово
    size_t len = 0; // и его длина
    while (!ss.eof())
    {
        string tmp_word;
        ss >> tmp_word;
        size_t new_len = strlen(tmp_word.c_str());
        if (new_len>len)
        {
            x = y;
            word = tmp_word;
            len = new_len;
        }
        y++;
    }
    cout << word << ' ' << x << endl;
    return 0;
}
Этот код не проверяет, например, есть ли два слова одинаково большие и т.д., но ведь вопрос был не в этом.
1
xitryuga
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 52
14.03.2014, 23:20  [ТС] #3
Спасибо большое! Работает!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2014, 23:20
Привет! Вот еще темы с ответами:

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

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

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

Ввести символьную строку. Найти в строке самое длинное слово и вывести его на экран. Новых строк не создавать - C++
Ввести символьную строку. Найти в строке самое длинное слово и вывести его на экран. Новых строк не создавать. СПАСИБО!


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

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

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