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

Длина строки и нуль-терминатор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод в текстовый файл http://www.cyberforum.ru/cpp-beginners/thread766777.html
Подскажите, пожему не получается вывести в файл все элементы двоичного дерева поиска, а только первый? void Book::Save() { FILE *f; char * path = "PhoneBook.txt"; if ( !(f = fopen(path, "w")) ) { cout << "Error occurred saving file...\n\n"; system("pause");
C++ Добавить в программу конструктор и деструктор написал программу с классами . как в нее добавить конструктор и деструктор? #include <iostrea m> using namespace std; #define N 3 class STUDENT { public: char FIO; int number; int usp; http://www.cyberforum.ru/cpp-beginners/thread766763.html
C++ Освоение gdi+
Первый вопрос. Есть созданная скажем из файла картинка в виде указателя на создланный Gdiplus::Image Как ее вывести не исходной, а черно-белой? В сторону - разумеется можно вручную. Вывести ее на отдельный hdc, с него считать по точке цвета, раскодировать, потом по формуле cgr=(R+G+B)/3 новый цвет (cgr,cgr,cgr), для загружаемых через winapi bmp я недавно так успешно делал, но наверно в gdi...
C++ Плохо работает ГСЧ
Подскажите, пожалуйста, как изменить программу, чтоб ГСЧ работал хорошо? Мне нужно, чтоб на каждой итерации у меня генерировался "хороший" вектор X, а оно мне генерирует пачками одинаковые. Как это можно обойти? И по коду подскажите -- где что поисправлять. Заранее весьма благодарен! // TPMVector.h #pragma once #include <vector> class TPMVector { public:
C++ Создайте два стека для символов http://www.cyberforum.ru/cpp-beginners/thread766748.html
Создайте два стека для символов. Вводите символы с клавиатуры. При этом латинские буквы должны попадать в первый стек, цифры – во второй, любые другие символы пропускаются. После ввода с клавиатуры эталонного символа (например #) выведите на экран содержимое обоих стеков.
C++ Dev C++ не работает с регистрами В ВС31 проблем не было. А вот DEv C++ не хочет работать с регистрами. Кто знает, в чем проблема? Вот код программы: #include <dos.h> #include <graphics.h> #include <stdio.h> #include <conio.h> REGS regs; подробнее

Показать сообщение отдельно
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
20.01.2013, 12:03     Длина строки и нуль-терминатор
Цитата Сообщение от VladSharikov Посмотреть сообщение
то есть strlen считает длину строки без нуль терминатора, а strcpy копирует содержимое строки в строку вместе с ним (с "\0"), правильно?
Да, можете почитать описание функций:
strcpy
strlen
Можно использовать strncpy, он скопирует столько символов, сколько укажете, и \0 добавлять не будет (если вы явно не укажете скопировать строку вместе с \0)

Кстати strcat тоже у вас не правильно работает:

C++
1
2
3
Data = new char[2]; 
Data[0] = symbol; // чему равен symbol[1], symbol[2].... и где встретится первый \0, чтобы сработала strcat?
strcat(Data, "\0"); // добавляет в конец два нуль-символа \0 \0 - с выходом за пределы
Во-первых, Data должна быть нуль-терминирована, чтобы было известно, куда добавлять вторую строку. Во вторых, strcat сам добавляет нуль-терминатор к результату. Поэтому правильнее и проще - Data[1] = '\0'
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru