Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 13.09.2013
Сообщений: 90
1

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

13.12.2013, 06:48. Показов 1150. Ответов 7
Метки нет (Все метки)

Как засунуть всю задачу в функцию, так что бы вызвать ее с помощью меню?
Задача: Ввести строку. Найти в функции в ней слово максимальной длины.

Есть и задача и меню:
Задача
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));
}

Как засунуть сюда (в меню) эту задачу вместо второго пункта меню. Помогите пожалуйста. У меня никак не выходит это.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2013, 06:48
Ответы с готовыми решениями:

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

Ввести строку из нескольких слов и найти в ней заданное слово
Ввести строку из нескольких слов и найти в ней заданное слово( введённое с клавиатуры) вывести...

3. Ввести строку произвольной длины. Сосчитать количество слов в ней.
3. Ввести строку произвольной длины. Сосчитать количество слов в ней.

Ввести строку произвольной длины.Распечатать все '*' в ней с порядковыми номерами
Ввести строку произвольной длины.Распечатать все '*' в ней с порядковыми номерами

7
93 / 66 / 27
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 07:00 2
Вначале пишешь первую функцию, потом вторую, потом main и в зависимости от условия, обращаешься к первой или второй функции, и выводишь.
0
1 / 1 / 1
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 07:35  [ТС] 3
Цитата Сообщение от sogooo Посмотреть сообщение
Вначале пишешь первую функцию, потом вторую, потом main и в зависимости от условия, обращаешься к первой или второй функции, и выводишь.
Я понимаю это в теории но не могу изобразить на практике, поэтому сюда и пишу. У меня ничего не выходит, уже очень-очень долго пытаюсь что-то сделать, но все неудачно.
0
93 / 66 / 27
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 07:48 4
Нужно запихнуть прогрумму в меню?))
0
1 / 1 / 1
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 08:09  [ТС] 5
Цитата Сообщение от sogooo Посмотреть сообщение
Нужно запихнуть прогрумму в меню?))
именно)) на цифру 2, вместо той задачи что там в меню))
0
93 / 66 / 27
Регистрация: 11.12.2013
Сообщений: 309
13.12.2013, 08:13 6
Понятно))
К 12 00 скину))
0
1 / 1 / 1
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 23:16  [ТС] 7
Цитата Сообщение от sogooo Посмотреть сообщение
Понятно))
К 12 00 скину))
спасибо, жду))
0
2 / 9 / 7
Регистрация: 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;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2013, 23:56

Найти в строке слово-перевертыш максимальной длины
Дана строка в виде предложения. Найти в ней слово-перевертыш максимальной длинны. Словом будем...

Слово максимальной длины заменить на слово минимальной длины
Задача: Создать 2 объекта разработанного класса. Одной из компонент класса является символьная...

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

Найти в файле строку максимальной длины и ее позицию
В файле data.txt построчно записан некоторый текст. Найти строку макси- мальной длины и ее позицию.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru