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

Как соединить три строки char в одну? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Игра крестики-нолик http://www.cyberforum.ru/cpp-beginners/thread1498660.html
Пишу игру крестики-нолики с хоть каким-то ИИ. Есть функция bot_attack и функция bot_def bool Game::bot_attack() { this->botAttack=false; //gor if((player_field==player_field) && (player_field==0)) { if(player_field==2) { return true;
C++ Как написать программу-собеседника Мне хотелось бы, чтобы кто-нибудь объяснил мне, как написать себе собеседника. http://www.cyberforum.ru/cpp-beginners/thread1498655.html
Нахождение плотности вещества C++
Как должна выглядить структура, в который хранятся , например, название и плотности газов, чтобы при вводе в консоли имени газа, показывалась его плотность.Напишите шаблон, пожалуйста.Язык C++.
Шифрование строки модифицированным шифром Цезаря C++
помогите пожалуйста написать программу, реализующую шифрования вводимой строки модифицированным шифром Цезаря..
C++ Работа с массивом с через strcpy_s() http://www.cyberforum.ru/cpp-beginners/thread1498576.html
Функция addBrackets принимает массив и преобразует его заключая в скобки . т.е. на на вход массив: text после преобразования: Вылетает эксепшен "boffer is too small" на первом strcat. Что не так делаю? #include <iostream> void addBrackets(char* buffer) { char *result = new char; result = NULL;
C++ Как узнать зависимость DLL-ки от других DLL-ек? Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно тулфейн свого компилятора и тд. Есть какая - то утилитка, чтоб зависимости посмотреть? ОС: Винда Есть Dependency Walker, но он для PE файлов. подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
15.07.2015, 09:21     Как соединить три строки char в одну?
SuperProgramer, просто не надо использовать char* там, где проще и правильнее использовать std::string.
Непосредственная работа с char* это сишный уровень, а не плюсовый.
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
strcpy(ResultString, String1); 
strcat(ResultString, String2);
Вспоминаю свой старый сишный код подобного рода и ловлю багов, когда вдруг возникала необходимость либо поменять порядок конкатенации строк, либо убрать/добавить строки. strcpy() уползал куда-то в середину (не без помощи копипасты, конечно) или вовсе удалялся незаметно, а в начало попадал strcat(). На отладочных версиях было всё тип-топ, т.к. память инициализировалась нулями, а в релизе - сюрпризы. После этого стал явно инициализировать данные итоговой строки примерно так:
C++
1
*String4 = 0;
После этого первый strcat работал эквивалентно strcpy, и strcpy не было смысла использовать вообще в этой схеме.
Т.о. менять местами строки (путем копипасты) можно было уже безболезненно.

Кстати, можно ещё напомнить о неэффективности конкатенации путем последовательных вызовов strcat, т.к. на каждом вызове приходится по-новой искать (линейно) конец временной строки.
 
Текущее время: 12:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru