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

В строке, состоящей из слов и знаков препинания, найти слово максимальной длины - C++

Восстановить пароль Регистрация
 
MONOLIT93
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 12
29.01.2014, 20:45     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины #1
В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-, найти слово максимальной длины;
Программа должна обрабатывать любое количество вариантов данных.

Добавлено через 10 минут
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
#include <iostream>
 
using namespace std;
int main (){
    int max=0,a=0,t=0,i,g;
    char str[100],viv[100];
    
    cout <<"Vvedite stroky - ";
    cin.getline (str, 100);
     g=strlen(str)-1;
    for (i=0; i <g; i++){
        
if(str[i]!=' '){if(str[i]!='.'){if(str[i]!=','){if(str[i]!='!'){if(str[i]!='?'){if(str[i]!='-'){if(str[i]!=';'){if(str[i]!='\0'){a=a+1;}}}}}}}}
        
        if (str[i]==' ') {if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]=='.'){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]==','){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]=='!'){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]=='?'){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]=='-'){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]==';'){if( a > max ){max = a;t=i;}
            a=0;}
        if(str[i]=='\0'){if( a > max ){max = a;t=i;}
            a=0;}
 
    }
    for (i=0; i<=t; i++){ viv[i]=str[i+t-max];}
    cout <<viv;
    cout <<max<<endl;
    system("pause");
return 0;
}
вот код где идет вывод но выводит какую то чушь. как можно исправить?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 20:45     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины
Посмотрите здесь:

C++ Слово максимальной длины заменить на слово минимальной длины
В строке, состоящей из слов и знаков препинания(пробел.:,!?-;),найти слово максимальной длины, не содержащее заданную букву C++
В параметрах командной строки передается список слов. Определить и вывести на экран слово максимальной длины. C++
C++ В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-;), найти слово максимальной длины
C++ Найти в функции в строке слово максимальной длины
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Frosten
3 / 3 / 5
Регистрация: 28.01.2014
Сообщений: 13
29.01.2014, 21:22     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
шестую строчку измени на
C++
1
char str[100]=" ", viv[100]=" ";
и станет выводить нормально, но у тебя там в коде где-то ошибка и выводится не слово с максимальной длиной, а слово с минимальной длиной.
MONOLIT93
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 12
30.01.2014, 05:54  [ТС]     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины #3
Окей спасибо буду разбираться.

Добавлено через 16 минут
В данном случаи он берет только 1 слово. как сделать что бы дальше брал слова?
MONOLIT93
0 / 0 / 0
Регистрация: 26.01.2014
Сообщений: 12
30.01.2014, 06:06  [ТС]     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины #4
Вот крин что выходит. берет часть 2 слова. Подскажите почему? Если не сложно.
Миниатюры
В строке, состоящей из слов и знаков препинания, найти слово максимальной длины  
Yandex
Объявления
30.01.2014, 06:06     В строке, состоящей из слов и знаков препинания, найти слово максимальной длины
Ответ Создать тему
Опции темы

Текущее время: 01:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru