Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
48 / 37 / 27
Регистрация: 11.02.2014
Сообщений: 134

Неправильный вывод в строке типа char

21.04.2014, 23:52. Показов 1167. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
char * word = new char [5];
    for (int i = 0; i < 5 - 1; i++)
        word[i] = 'a';
    cout <<  word << endl;
почему кроме 4-х а выводится еще какой-то мусор? помогите разобраться...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2014, 23:52
Ответы с готовыми решениями:

Условие типа if( масив типа char[x] [y] != переменная типа char) не срабатывает
Создал функцию ChangeWay(). Все, кроме if(map !=ar) (обе переменные типа char) работает нормально, а когда выполнение доходит до этого...

Сортировка цифр в строке типа char
Здравствуйте! Помогите, пожалуйста, дописать программу. Прогррамма должна сортировать буквы или цифры во введенной строке. Например...

Аргумент типа (const char*) несовместим с параметром типа (char*). Как исправить?
#include &quot;Table.h&quot; #include &quot;Contour.h&quot; #include &quot;TwoShape.h&quot; #include &lt;iostream&gt; int main() { Contour circle; ...

8
 Аватар для Vaiz
104 / 98 / 40
Регистрация: 01.07.2012
Сообщений: 277
21.04.2014, 23:58
word[4] = 0; // конец строки
1
3 / 3 / 3
Регистрация: 28.03.2014
Сообщений: 38
22.04.2014, 00:01
D_Ok, не знаю что вы курите, но у меня все нормально
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(){
    
char * word = new char [5];
    for (int i = 0; i < 5 - 1; i++)
        word[i] = 'a';
    cout <<  word << endl;
    return 0;
}
0
48 / 37 / 27
Регистрация: 11.02.2014
Сообщений: 134
22.04.2014, 00:05  [ТС]
Цитата Сообщение от Vaiz Посмотреть сообщение
word[4] = 0 // конец строки
да я это знаю, просто думал что нулевой символ сам добавился бы, как это было бы при присвоение массиву полностью строки. Присвоил последнему элементу нулевой символ, помогло.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
22.04.2014, 00:07
Цитата Сообщение от DoOj Посмотреть сообщение
не знаю что вы курите, но у меня все нормально
повезло
Цитата Сообщение от D_Ok Посмотреть сообщение
почему кроме 4-х а выводится еще какой-то мусор? помогите разобраться...
потому что нет конца строки( завершающий 0) и выводится все что есть в памяти пока не встретится 0
поэтому самому нужно вписать 0 в нужное место
о чем и было написано
Цитата Сообщение от Vaiz Посмотреть сообщение
word[4] = 0; // конец строки
DoOj, а память освобождать не нужно?

Добавлено через 1 минуту
Цитата Сообщение от D_Ok Посмотреть сообщение
да я это знаю, просто думал что нулевой символ сам добавился бы,
это с чего бы?
1
48 / 37 / 27
Регистрация: 11.02.2014
Сообщений: 134
22.04.2014, 00:07  [ТС]
Цитата Сообщение от DoOj Посмотреть сообщение
D_Ok, не знаю что вы курите, но у меня все нормально
значит вам повезло, и сразу встретился 0, протестируйте еще...
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
22.04.2014, 00:09
DoOj, вы смотрите в дебаге и у вас скорее всего компилятор обнуляет используемую память, в релизе же будет не предсказуемый результат.

D_Ok, добавить '\0' как посоветовал Vaiz, а еще советую инициализировать память
C++
1
memset(str,0,strlen(str));
.. да и вообще все переменные. в будущем облегчит жизнь
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
22.04.2014, 00:11
Цитата Сообщение от Aloir Посмотреть сообщение
memset(sss,0,strlen(sss));
а strlen(sss) какое число вернет у не инициализированной памяти?
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
22.04.2014, 00:14
ValeryS, вай, точно. короче размер туда!)

Не по теме:

надо заканчивать делать несколько дел одновременно 8-) сколько уже от этого страдаю ..

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2014, 00:14
Помогаю со студенческими работами здесь

Поиск объекта в классе по строке типа char
Есть такая задача : Описать класс с именем PRICE, содержащий следующие поля: - название товара; - название магазина, в котором...

Проверить правильность ввода в строке типа char
Здравствуйте. Такой вопрос: Есть строковый массив и запись в него, но как при этом проверить все это дело на содержание в нем, либо при...

Вывод переменной типа char
Переменная x типа char. x = 65; cout &lt;&lt; x; Так выводиться &quot;A&quot;. x = 64; cout &lt;&lt; x+1;

Значение типа const char * нельзя присвоить сущности типа char *
Добрый день. Я новичок в c++ и столкнулся с проблемой при написании маленькой программы. Собственно у меня такая ошибка: значение типа...

Как полю класса типа char* присвоить значение типа *char
Проблема в строчке 46 (не пинайте сильно за формат кода и за говнокод) #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru