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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ivpoed
1 / 1 / 0
Регистрация: 21.03.2010
Сообщений: 38
#1

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

21.03.2010, 20:25. Просмотров 541. Ответов 4
Метки нет (Все метки)

Здравствуйте.

Подскажите пожалуйста, как ПРАВИЛЬНО и КРАСИВО поменять местами две 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
Посмотрите здесь:

Отличие string и String C++
string = define + string ; C++
C++ Неудачный обмен данных
C++ Модифицированний обмен
C++ Обмен значениями двух переменных А и В без использования вспомогательной переменной
C++ Обмен значениями двух переменных
Обмен между приложениями C++
Обмен между значениями двух переменных, не используя при этом третьей переменной C++
C++ Определить процедуру, осуществляющую обмен значениями двух переменных
Обмен значениями C++
Преобразование string* в string 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
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
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
Ответ Создать тему
Опции темы

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