IPB

Здравствуйте, гость ( Вход | Регистрация )

> Строки
Ольга Тимонова
сообщение 1.3.2012, 17:51
Сообщение #1


Новичок
*

Группа: Продвинутые
Сообщений: 3
Регистрация: 1.3.2012
Город: Барнаул
Учебное заведение: Алтайский государственный университет
Вы: студент



В программе Visual Studio нужно решить задачу:
В заданном тексте найти самое длинное слово и самое длинное предложение.
Помогите, пожалуйста!!! Заранее спасибо!!!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов(1 - 2)
tig81
сообщение 1.3.2012, 18:47
Сообщение #2


Академик
********

Группа: Преподаватели
Сообщений: 15 617
Регистрация: 15.12.2007
Город: Украина, Запорожье
Учебное заведение: ЗНУ
Вы: преподаватель



Что не получается?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergio Ramos
сообщение 13.3.2012, 18:34
Сообщение #3


Студент
**

Группа: Продвинутые
Сообщений: 86
Регистрация: 16.11.2010
Город: Saratov



Если не особо заморачиваться с исключительными ситуациями, то как-то так :

Код

C++

#include "iostream"
#include "fstream"
#include "string"
#include "cstring"
#include "vector"

using namespace std;

#define characters ((arr[i][j]>='A' && arr[i][j]<='z') || (arr[i][j]>='0' && arr[i][j]<='9') || arr[i][j]=='-')
#define endOfSentence (arr[i][j]!='.' && arr[i][j]!='?' && arr[i][j]!='!')

int main () {

    ifstream in("input.txt");
    
    string sentence = "";
    string word = "";

    vector <string> arr;

    while (!in.eof()) {
        string tmp;
        getline(in,tmp);
        arr.push_back(tmp);
    }


    string currentWord = "";

    for (int i=0;i<arr.size();i++) {
        for (int j=0;j<arr[i].size();j++) {
            if (arr[i][j] != ' ' && characters) {
                currentWord += arr[i][j];
            } else {
                if (currentWord.size() > word.size()) {
                    word = currentWord;
                }
                currentWord = "";
            }
        }
    }

    string currentSentence = "";

    for (int i=0;i<arr.size();i++) {
        for (int j=0;j<arr[i].size();j++) {
            if (endOfSentence) {
                currentSentence += arr[i][j];
            } else {
                if (currentSentence.size() > sentence.size()) {
                    currentSentence += arr[i][j];
                    sentence = currentSentence;
                }
                currentSentence = "";
            }
        }
    }


    cout << word << endl;
    cout << sentence;

    return 0;}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 21:22

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru