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

Обмен содержимого строк - C++

Восстановить пароль Регистрация
 
Lemm_Leto
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 19
14.01.2013, 19:38     Обмен содержимого строк #1
Использую для обмена класс string, максимальное и минимальное значение и нашел и эти строки соответственно вырезал и записал в свои объекты, но как дальше их поменять местами в исходном? Помогите пожалуйста
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
void String::swap()
{
    string Line(str);
 
    //Поиск максимального
    int temp_start=0, temp_end=0;
    int max_start=0, max_end=0;
    int temp_max_length=0;
    int max_length=0;
    
    for(int i=0; i<length+1; i++)
    {
        if(str[i] == 32 || str[i] == '\0')
        {
            temp_end = i;
            temp_max_length = temp_end - temp_start;
        }
        if(max_length < temp_max_length)
        {
            max_start = temp_start;
            max_end = temp_end;
            max_length = temp_max_length;
        }
        if(str[i] == 32 || str[i] == EOF)
            temp_start = i+1;
    };
    string max(Line.substr(max_start, max_length));
 
    //Поиск минимального 
    temp_start=0; temp_end=0;
    int min_start=0, min_end=0;
    int temp_min_length=256;
    int min_length=255;
    
    for(int i=0; i<length+1; i++)
    {
        if(str[i] == 32 || str[i] == '\0')
        {
            temp_end = i;
            temp_min_length = temp_end - temp_start;
        }
        if(min_length > temp_min_length)
        {
            min_start = temp_start;
            min_end = temp_end;
            min_length = temp_min_length;
        }
        if(str[i] == 32 || str[i] == EOF)
            temp_start = i+1;
    };
    string min(Line.substr(min_start, min_length));
    
    Line.replace(Line.find(max), max.length(), min);
    cout << Line << endl;
    Line.replace(Line.find_last_of(min), min.length(), max);
    
    cout << Line << endl;
};
P.S. Это один из методов моего собственного класса стринг
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 19:38     Обмен содержимого строк
Посмотрите здесь:

обмен элементов в массиве C++
C++ Обмен строк в матрицах
Обмен через порт C++
C++ Неудачный обмен данных
C++ межпрограммный обмен данными
C++ Модифицированний обмен
C++ Вывод содержимого вектора с наибольшим количеством строк
C++ Ошибки при проверке содержимого двух строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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