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

Не работает strcat в QtCreator - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество букв в файле http://www.cyberforum.ru/cpp-beginners/thread1148552.html
Привет всем программистам.У меня проблема с решением задачи,прошу вашей помощи.Дана задача: Дан файл one.txt,содержащий текст.Написать программу,которая посчитает и выведет на экран количество букв...
C++ Графика на С++ Доброго времени суток, программисты. Имею такой вопрос. Работаю в Visual C++ 2013, подключил <Windows.h> для работы с графикой, как теперь нарисовать окружность, прямые? Сколько не искал, нашёл... http://www.cyberforum.ru/cpp-beginners/thread1148549.html
Непонятка с float C++
float s = (123 * 100 / 360000); cout << fixed << setprecision(3) << s; По идее, в консоли должно вывести "0,034", но видимо с++ не разделяет эту идею. Пробовал и в отладчике переменную смотреть и...
C++ Поиск букв в тексте
Разработать программу, которая вводит текст и букву и определяет слово (слова), содержащее наибольшее количество указанных букв. (заранее премного благодарен)
C++ Ввести строку символов. Упорядочить символы в строке в порядке возрастания http://www.cyberforum.ru/cpp-beginners/thread1148524.html
Помогите пожалуйста!Ввести строку символов. Упорядочить символы в строке в порядке возрастания. Вывести на экран измененную строку, а также наименьший и наибольший символы в строке.
C++ Прогга с классами Программа на применение классов. Два класса, один из них потомок, нужно описать ввод, ввывод матрицы, определение минимума среди отрицательных-это для основного класса;для потомка - ввод,... подробнее

Показать сообщение отдельно
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
15.04.2014, 14:42
Цитата Сообщение от IrineK Посмотреть сообщение
В данном контексте - именно += (так органичней - хотя, дело вкуса).
Я исхожу из того, что спрашивает автор Он же как бы "Заказчик" в этой ситуации. А если уж говорить об органичности, то у нормального класса String должны быть все операторы, и + и +=. Хотя бы потому, что решают немного разные задачи.

Лично мне кажется, что темповый объект здесь лишний. Т.к. он конструируется через копирование, следовательно еще раз вызывается new, хотя оно не нужно по большому счету.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    String & operator+=(const String & s)
    {
        if(s.str != NULL)
        {
            char * buf = new char[len + s.len + 1];
            if(str != NULL)
            {
                strncpy(buf, str, len + 1);
            }
            strncat(buf, s.str, s.len + 1);
            len += s.len;
            delete [] str;
            str = buf;
        }
        return *this;
    }
Добавлено через 5 минут
Собственно strncat тут тоже не особо нужен, потому что у нас и так есть конец строки, куда надо дописывать (strncat же его еще сначала должен найти).
Вместо 10й строки можно просто написать так:
C++
1
            strncpy(buf + len, s.str, s.len + 1);
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru