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

Записать программу в функцию - C++

Восстановить пароль Регистрация
 
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 01:52     Записать программу в функцию #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
#include <iostream>
using namespace std;
int main()
{
    int max = 0, a;
    char str[ 100 ], s[ 100 ], smax[ 100 ];
    cin.getline( str, 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 << "Max word is: " << smax << "\nHis length is: " << max << endl;
    return system( "pause" );
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 01:52     Записать программу в функцию
Посмотрите здесь:

Как правильно записать функцию? C++
Массив в функцию записать C++
C++ как записать эту программу через функцию main и ее прототип?
Записать функцию C++
Как записать функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2013, 02:11     Записать программу в функцию #2
Vonka, твой алгоритм выдает ошибку. Если переделывать под функцию, можно так:
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
#include <iostream>
using namespace std;
 
#define pairType std::pair<char*, int>
 
pairType MaxStr(char* str);
 
int main()
{
    char str[100], s[100], smax[100];
    cin.getline(str, 100);
 
    pairType r = MaxStr(str);
 
    cout << "Max word is: " << r.first << "\nHis length is: " << r.second << endl;
 
    return system("pause");
}
 
pairType MaxStr(char* str)
{
    int max = 0, a;
    char s[100], smax[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);
        }
    }
 
    pairType res;
 
    res.first = smax;
    res.second = max;
 
    return res;
}
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 04:42  [ТС]     Записать программу в функцию #3
Цитата Сообщение от Issues Посмотреть сообщение
Vonka, твой алгоритм выдает ошибку. Если переделывать под функцию, можно так:
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
#include <iostream>
using namespace std;
 
#define pairType std::pair<char*, int>
 
pairType MaxStr(char* str);
 
int main()
{
    char str[100], s[100], smax[100];
    cin.getline(str, 100);
 
    pairType r = MaxStr(str);
 
    cout << "Max word is: " << r.first << "\nHis length is: " << r.second << endl;
 
    return system("pause");
}
 
pairType MaxStr(char* str)
{
    int max = 0, a;
    char s[100], smax[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);
        }
    }
 
    pairType res;
 
    res.first = smax;
    res.second = max;
 
    return res;
}
Оно не работает, у меня выдает ошибки, а сама программа в выводе не выдает слово.
C++
1
2
3
4
5
warning C4101: 's' : unreferenced local variable
warning C4101: 'smax' : unreferenced local variable
warning C4018: '<' : signed/unsigned mismatch
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
13.12.2013, 18:02     Записать программу в функцию #4
Vonka,
Цитата Сообщение от Issues Посмотреть сообщение
Vonka, твой алгоритм выдает ошибку. Если переделывать под функцию, можно так:
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
13.12.2013, 23:26  [ТС]     Записать программу в функцию #5
Issues, мой алгоритм не может выдавать ошибку, он работает)) а переделанный с функцией выдает ошибку))
Yandex
Объявления
13.12.2013, 23:26     Записать программу в функцию
Ответ Создать тему
Опции темы

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