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

Конкатенация строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти наиболее длинную цепочку в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread616570.html
Здравствуйте. Помогите пожалуйста решить одну задачку на любом языке программировании (желательно PHP): в целочисленном двумерном массиве найти наиболее длинную цепочку одинаковых подряд стоящих...
C++ Подскажите как делать хоть что-нибудь 1. Вычислить значение первой производной функции xN в заданной точке A при заданном значении N. 2. Определить число, полученное выписыванием в обратном порядке цифр заданного целого трехзначного... http://www.cyberforum.ru/cpp-beginners/thread616516.html
Использование выражений типа a == b == c; C++
Скажите, можно ли использовать такие выражения и как они работают? Почему такая конструкция дает истину только когда все переменные равны 1 ? if(a==b==c) cout << "Hello, World !"
C++ Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные
Всем привет)))Помогите пожалуйста написать программу))) Написать программу,которая считывает текст из файла и выводит на экран сначала предложения,начинающиеся с однобуквенных слов,а затем все...
C++ Исправьте ошибки http://www.cyberforum.ru/cpp-beginners/thread616426.html
Помогите пожалуйста исправить ошибки. Сейчас на жкзамене сижу. Вроде правильно все. Но ошибок откуда-то повылазило. #include<windowsx.h> #include<stdio.h> #include<iostream> #define...
C++ Инсталяция библиотеки fltk Visual C++ 2010 Express Скачал вот отсюда http://fltk.org/software.php архив fltk-1.1.10-source.zip, извлёк содержимое, затем открыл fltk.dsw в Visual C++ 2010 Express и дальне начинаются проблемы... На скрине показано что... подробнее

Показать сообщение отдельно
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1

Конкатенация строк - C++

29.06.2012, 18:04. Просмотров 2225. Ответов 1
Метки (Все метки)

Разбираю учебный пример - написать класс для работы со строками. Всего два поля:

C++
1
2
3
private:
    int _size; // длина строки, без нуль-символа
    char * _string; // внутреннее представление
Надо перегрузить оператор (+) для конкатенации. Сделал что-то вроде этого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
String String::operator + (const String & rhs) const
{
    char * buff = new char[_size + rhs._size + 1];
    
    strcpy(buff, _string);   // помещаем в буфер первую строку
    strcat(buff, rhs._string);  // добавляем в буфер вторую строку
    
    String res(buff); // вызов конструктора копирования
    
    delete [] buff;
    
    return res;
}
Вопрос, нет ли тут ошибок, (например при работе с памятью и использовании стандартных ф-ций для работы с char*) и что можно оптимизировать?

Не по теме:

Понимаю, что всё это велосипеды, но делаю, чтобы усвоить материал

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru