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

Форматирование строк. cout - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сложение больших чисел (длинная арифметика) http://www.cyberforum.ru/cpp-beginners/thread814316.html
Есть две строки string с числами, не получается сделать их суммирование с помощь, не могу понять как сделать, помогите, пожалуйста. Вот, что я написал: #include <stdlib.h> #include <iostream> #include <string> using namespace std; class bigint {
C++ Запись в файл Сформировать файл "ЕXP.txt", содержащий сведения об экспорте товаров такого образца: наименование, страна, объем поставок и стоимость поставок. Переписать в файл "MaxExp.txt" названия стран, экспорт в которых превышает 10 наименований, и общую стоимость таких поставок. http://www.cyberforum.ru/cpp-beginners/thread814300.html
Через какое время корабль прибудет в порт назначения? C++
Подскажите пожалуйста Корабль должен преодолеть 3000 км. В первый день он прошел 200 км. Каждый следующий день он будет проходить на 5% больше, чем в предыдущий. Через какое время он прибудет в порт назначения?
C++ Удаление указателя на объект класса
Что-то ни как не могу разобраться, где у меня ошибка?! Ниже приведен фрагмент кода: //... shapes *ptr=0; //ptr - указатель базового типа, на объект производного класса (к примеру, ромба) //... ptr=new rhomb; //ромб - объект производного класса rhomb от базового класса shapes //... delete ptr; //удаление объекта (ромба) //...
C++ Сортировка масива методом выбора http://www.cyberforum.ru/cpp-beginners/thread814267.html
Подскажите пожалуйста, почему компилятор жалуется на мою 34 строку (где я переношу функцию в main). #include <iostream> using namespace std; template< class T > void selectSort(T* arr, int size) {
C++ Что такое многоразрядное число? (Создать класс ПАРА целых чисел) Объясните пожалуйста что такое многоразрядное число, и его старшая и младшая часть, если можно наведите пример. подробнее

Показать сообщение отдельно
GoldenId
125 / 123 / 32
Регистрация: 11.11.2010
Сообщений: 667
Записей в блоге: 13
Завершенные тесты: 1
22.03.2013, 19:00
Цитата Сообщение от andreyka_g Посмотреть сообщение
GoldenId, большое спасибо! было интересно почитать)
You are welcome. Могу дальше.

Собственно чисто сишные строки, т.н. zero-terminated строки, то есть строки, оканчивающиеся нулевым символом, это классика. Они содержатся в памяти просто как последовательность символов. Окончание определяется по нулевому символу.
Например следующие записи аналогичны.
C++
1
2
const char myarr[] { 'H', 'e', 'l', 'l', 'o', '\0' };
const char mystr[] = "Hello";
Другое дело, что даже простейшие операции со строками такого вида уже затруднительны. Вот так, например конкатенатятся (сшиваются) две сишные строки
C++
1
2
3
4
5
6
7
8
    const char str1[] = "Hello ";
    const char str2[] = "world!";
 
    // этот + 1 как раз для того, чтобы вместить нулевой символ
    char *res = new char[ strlen( str1 ) + strlen( str2 ) + 1 ];
 
    strcpy( res, str1 );
    strcat( res, str2 );
громоздко.
Именно поэтому были изобретена библиотека STL, а вместе с ней класс std::string (хотя это не единственное, что было изобретено человечеством, например в MFC, насколько я помню, их строковый класс называется CString).
Вот так сшиваются STLные строки
C++
1
2
3
4
5
6
    string str1 = "Слезы на очках,\n";
    string str2 = "Странные очки,\n";
    string str3 = "А может,\n";
    string str4 = "Слёзы на лице.";
 
    string res = str1 + str2 + str3 + str4;
Это гораздо удобнее.
Для понимания и классического образования, знать, как оперировать с чистыми сишными строками стоит. Некоторые преподаватели любят давать задания месить циклами эту raw data. На практике же афайк так никто не делает.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru