С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

Обмен значениями двух переменных - C++
Нашёл на другом форуме занятную формулу обмена значений двух переменных(очевидно на с++): b = – –a + (a=b)*0; Проверил на числах 1 и...

Определить процедуру, осуществляющую обмен значениями двух переменных - C++
Составить программу, в результате которой величина а меняется значением с величиной b, а величина с с величиной d(Определить процедуру,...

Обмен значениями двух переменных А и В без использования вспомогательной переменной - C++
Сконструировать алгоритм обмена значениями двух переменных А и В без использования вспомогательной переменной

Обмен между значениями двух переменных, не используя при этом третьей переменной - C++
Подскажите как написать программу, которая производит обмен между значениями двух переменных, не используя при этом третьей переменной

Доступ к паре в map<string, vector<pair<string, string>>>Temp - C++
Подскажите пожалуйста как получить данные в векторе пар ? void showData(const map&lt;string, vector&lt;pair&lt;string, string&gt;&gt;&gt;Temp) { ...

Поменять местами значения целых переменных х и у не используя дополнительных переменных - C++
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите!!! Поменять местами значения целых переменных х и у не...

4
Genius Ignat
1237 / 775 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.03.2010, 20:30 #2
а ты уверен что эта функция и есть проблема.

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

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

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

Тем не менее:
1) Всё-таки как правильно обменивать строки? Есть ли специальные функции?
2) Насколько "красиво" использовать массив string? Есть ощущение, что это избыточно...
0
Genius Ignat
1237 / 775 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.03.2010, 20:55 #4
Для данного работы с данным классом вполне нормальная функция.
0
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,405
21.03.2010, 22:07 #5
Ну, если уж используется string, то не нужно останавливаться на полдороге.
C++
1
2
3
4
string s1 = .......;
string s2 = .......;
// тут еще какой-то код....
swap(s1, s2);   // вуаля! обменяли.
0
21.03.2010, 22:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2010, 22:07
Привет! Вот еще темы с ответами:

Даны 5 переменных a,b,c,d,e - необходимо каждой из этих переменных присвоить число из текстового документа - C++
Есть у меня текстовый документ, в котором записаны 5 чисел. Каждое число в новой строчке. Предположим: 893 42 8 745 43 Даны 5...

Какое одинаковое значение можно вернуть из функций <string> f () и vector < <string> > f()? - C++
Понятное дело, что всё обсуждение будет вертеться вокруг аналога NULL. char* f_0 () { return NULL; } char** f_1 () { ...

Как используя C-String а потом и String class варьировать вывод? - C++
Дана задача: при вводе полного И.О.Ф. (в таком порядке) выводить Ф, И и О(только первую букву и .). И если О не задано - выводить только...

Как преобразовать char* в string и вывести переменную string на экран? - C++
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; char *chars = new char; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.