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

Обмен переменных string - C++

Восстановить пароль Регистрация
 
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
21.03.2010, 20:25     Обмен переменных string #1
Здравствуйте.

Подскажите пожалуйста, как ПРАВИЛЬНО и КРАСИВО поменять местами две string-переменные?
Делаю следующим образом:

C++
1
2
3
4
5
6
7
void SwapStrings(string *str1, string *str2)
{
    string temp;
    temp = *str1;
    *str1 = *str2;
    *str2 = temp; 
}
Всё компилируется, но в итоге виснет =(
Подскажите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2010, 20:25     Обмен переменных string
Посмотрите здесь:

C++ Где и почему используют ту или иную строку std::string, char[], System::String^ ?
C++ Как используя C-String а потом и String class варьировать вывод?
C++ Обмен значениями двух переменных А и В без использования вспомогательной переменной
C++ Даны 5 переменных a,b,c,d,e - необходимо каждой из этих переменных присвоить число из текстового документа
C++ Обмен значениями двух переменных
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.03.2010, 20:30     Обмен переменных string #2
а ты уверен что эта функция и есть проблема.

Добавлено через 1 минуту
попробуй так.
C++
1
2
3
4
5
6
7
void SwapStrings(string &str1, string &str2)
{
    string temp;
    temp = str1;
    str1 = str2;
    str2 = temp; 
}
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
21.03.2010, 20:40  [ТС]     Обмен переменных string #3
По-крайней мере, если я её комменчу, то всё работает.
Тут может быть проблема в том, что я эту функцию вызываю из одной хитрой рекурсивной функции для обмена двух элементов массива.

Добавлено через 2 минуты
Попробовал. То же самое =(
А вообще строки так обменивать - нормально? Или есть какие-то специальные функции?

Добавлено через 6 минут
Гм... локализовал глюк. Действительно, этот код здесь не причём.
Извиняюсь.

Тем не менее:
1) Всё-таки как правильно обменивать строки? Есть ли специальные функции?
2) Насколько "красиво" использовать массив string? Есть ощущение, что это избыточно...
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.03.2010, 20:55     Обмен переменных string #4
Для данного работы с данным классом вполне нормальная функция.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
21.03.2010, 22:07     Обмен переменных string #5
Ну, если уж используется string, то не нужно останавливаться на полдороге.
C++
1
2
3
4
string s1 = .......;
string s2 = .......;
// тут еще какой-то код....
swap(s1, s2);   // вуаля! обменяли.
Yandex
Объявления
21.03.2010, 22:07     Обмен переменных string
Ответ Создать тему
Опции темы

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