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

Ввести строку. Найти в функции в ней слово максимальной длины - C++

Восстановить пароль Регистрация
 
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 06:48     Ввести строку. Найти в функции в ней слово максимальной длины #1
Как засунуть всю задачу в функцию, так что бы вызвать ее с помощью меню?
Задача: Ввести строку. Найти в функции в ней слово максимальной длины.

Есть и задача и меню:
Задача
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
#include <iostream>
using namespace std;    
char smax[ 100 ]; 
void f (char str[])    
{
    int max = 0, a;
    char s[ 100 ];
    for( int i = 0; i < strlen( str ); i++ )
    {
         a = 0;
         strcpy( s, "" );
         for( int j = i, k = 0; str[ j ] != ' ' && str[ j ] != '\0'; j++, k++ )
         {
              a++;
              s[ k ] = str[ j ];
         }
         s[ a ] = '\0';
         if( a > max )
         {
             max = a;  
             strcpy( smax, s );
         }
    }
}
int main()
{
    char str[ 100 ];
    cin.getline( str, 100 );
    f( str );
    cout << smax;
    return system( "pause" );
}
Меню
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
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
int menu(); 
int sum(int aa, int bb); 
void kol(char *s); 
 
int main()
{   int a,b,c=0,k1=0;
    char s1[20];
    while(1)
    {
        switch(menu())  
        {
        case 1:
            printf("vvedite a i b: ");
            scanf("%d%d",&a,&b);   
            c=sum(a,b);         //вызов функции sum
            printf("\nSum= %d\n",c); 
            break;
        case 2:
            fflush(stdin);
            printf("vvedite ctroku: \n");
            gets(s1);
            kol(s1);      //вызов функции kol
            break;
        case 3: return 0;   
        }
    }
}
int menu()
{
    int ch;
    do {
        printf("\n   Menu: \n");
        printf("1. Podschitat' summu chisel:  \n");
        printf("2. Podschitat' kolichestvo simvolov v stroke:  \n");
        printf("3. Exit\n");
        printf("\t Vash vibor: ");
        scanf("%d",&ch);  
    }while(ch>3);
    return ch;
}
int sum(int aa, int bb)
{   return aa+bb; 
}
void kol(char *s)
{   printf("Dlina=%d", strlen(s));
}

Как засунуть сюда (в меню) эту задачу вместо второго пункта меню. Помогите пожалуйста. У меня никак не выходит это.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 06:48     Ввести строку. Найти в функции в ней слово максимальной длины
Посмотрите здесь:

Ввести строку произвольной длины.Распечатать все '*' в ней с порядковыми номерами C++
3. Ввести строку произвольной длины. Сосчитать количество слов в ней. C++
Задача в Си. Дана строка в виде предложения. Найти в ней слово-перевертыш максимальной длинны C++
C++ Слово максимальной длины заменить на слово минимальной длины
Ввести строку из нескольких слов и найти в ней заданное слово C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sogooo
 Аватар для sogooo
93 / 66 / 4
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 07:00     Ввести строку. Найти в функции в ней слово максимальной длины #2
Вначале пишешь первую функцию, потом вторую, потом main и в зависимости от условия, обращаешься к первой или второй функции, и выводишь.
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 07:35  [ТС]     Ввести строку. Найти в функции в ней слово максимальной длины #3
Цитата Сообщение от sogooo Посмотреть сообщение
Вначале пишешь первую функцию, потом вторую, потом main и в зависимости от условия, обращаешься к первой или второй функции, и выводишь.
Я понимаю это в теории но не могу изобразить на практике, поэтому сюда и пишу. У меня ничего не выходит, уже очень-очень долго пытаюсь что-то сделать, но все неудачно.
sogooo
 Аватар для sogooo
93 / 66 / 4
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 07:48     Ввести строку. Найти в функции в ней слово максимальной длины #4
Нужно запихнуть прогрумму в меню?))
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 08:09  [ТС]     Ввести строку. Найти в функции в ней слово максимальной длины #5
Цитата Сообщение от sogooo Посмотреть сообщение
Нужно запихнуть прогрумму в меню?))
именно)) на цифру 2, вместо той задачи что там в меню))
sogooo
 Аватар для sogooo
93 / 66 / 4
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 08:13     Ввести строку. Найти в функции в ней слово максимальной длины #6
Понятно))
К 12 00 скину))
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 23:16  [ТС]     Ввести строку. Найти в функции в ней слово максимальной длины #7
Цитата Сообщение от sogooo Посмотреть сообщение
Понятно))
К 12 00 скину))
спасибо, жду))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 23:56     Ввести строку. Найти в функции в ней слово максимальной длины
Еще ссылки по теме:

C++ В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-;), найти слово максимальной длины
C++ Найти в функции в строке слово максимальной длины
В строке, состоящей из слов и знаков препинания, найти слово максимальной длины C++

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

Или воспользуйтесь поиском по форуму:
nomyac
2 / 9 / 1
Регистрация: 12.10.2013
Сообщений: 43
13.12.2013, 23:56     Ввести строку. Найти в функции в ней слово максимальной длины #8
лови и небольшой совет: пиши чуть-более аккуратнее что ли)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <ctype.h>
#include "iostream"
#include <string.h>
using namespace std;
int menu(); 
int sum(int aa, int bb); 
void kol(char *s); 
 
void f (char str[])    
{
    char smax[ 100 ];
    int max = 0, a;
    char s[ 100 ];
    for( int i = 0; i < strlen(str); i++ )
    {   
        a = 0;
        strcpy( s, "" );
        for( int j = i, k = 0; str[ j ] != ' ' && str[ j ] != '\0'; j++, k++ )
        {
            a++;
            s[ k ] = str[ j ];
        }
        s[ a ] = '\0';
        if( a > max )
        {
            max = a;  
            strcpy( smax, s );
        }
    }
    cout<<"Самое длинное слово: "<<smax<<endl;
}
 
int sum(int aa, int bb)
{   
    return aa+bb; 
}
 
int main()
{  
    int a,b,c=0,k1=0;
    char s1[20];
    while(1)
    {
        switch(menu())  
        {
        case 1:
            printf("Введите А и Б: ");
            scanf("%d%d",&a,&b);   
            c=sum(a,b);
            printf("\nСумма= %d\n",c); 
            break;
        case 2:
            fflush(stdin);
            printf("Введите строку: \n");
            gets(s1);
            f(s1);  
            break;
        case 3: return 0;   
        }
    }
}
int menu()
{
    setlocale (0,"");
    int ch;
    do {
        printf("\n Меню: \n");
        printf("1. Посчитать сумму чисел:  \n");
        printf("2. Посчитать максимальное слово в строке:  \n");
        printf("3. Выход\n");
        printf("Ваш выбор: ");
        scanf("%d",&ch);  
    }while(ch>3);
    return ch;
}
Yandex
Объявления
13.12.2013, 23:56     Ввести строку. Найти в функции в ней слово максимальной длины
Ответ Создать тему
Опции темы

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