Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 2
Регистрация: 21.03.2010
Сообщений: 38

Обмен переменных string

21.03.2010, 20:25. Показов 2297. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2010, 20:25
Ответы с готовыми решениями:

Обмен значений двух переменных
Ниже решение задачи (Задана целочисленная последовательность A = (a i), i = 1..n, n <= 100.* Вывести индексы последовательности в*том...

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

обмен данными string c++ vba
Привет уважаемые знатоки! К с++ начал обращаться, т.к. возникла необходимость написания dll с функциями, которые необходимо вызывать в...

4
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.03.2010, 20:30
а ты уверен что эта функция и есть проблема.

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

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

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

Тем не менее:
1) Всё-таки как правильно обменивать строки? Есть ли специальные функции?
2) Насколько "красиво" использовать массив string? Есть ощущение, что это избыточно...
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
21.03.2010, 20:55
Для данного работы с данным классом вполне нормальная функция.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
21.03.2010, 22:07
Ну, если уж используется string, то не нужно останавливаться на полдороге.
C++
1
2
3
4
string s1 = .......;
string s2 = .......;
// тут еще какой-то код....
swap(s1, s2);   // вуаля! обменяли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2010, 22:07
Помогаю со студенческими работами здесь

Обмен значений двух переменных типа char
Не знаю как вообще использовать такой тип как char, сама программа звучит так: Даны значения двух переменных символьного типа a, b. ...

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

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

Выполнить обмен значениями двух переменных используя указатели на эти переменные
Выполнить обмен значениями двух переменных используя указатели на эти переменные.

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru