С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55

Вывод строкового массива на экран

04.10.2016, 00:44. Показов 2789. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток
Такая проблема,я хочу вывести какой-то результат , например "Hello",но пишет мусор,просто я не совсем понимаю,как это сделать.

Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
class String
{
private:
    int stringLength;
    char *string;
public:
    String();
    String(const char *s);
    String(String &str);
    ~String();
 
    int length() { return stringLength; };
    void printString(char *string);
    
    char& operator[](int index);
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include "String.h"
#include <cstdio>
 
String::String()
{
    stringLength = 0;
    string = nullptr;
}
 
String::String(const char * s)
{
    stringLength = strlen(s);
    s = new char[stringLength + 1];
    strcpy(string,s);
}
 
String::String(String & str)
{
    stringLength = str.stringLength;
    string = new char[stringLength + 1];
    strcpy(string, str.string);
}
 
String::~String()
{
    if (string!=nullptr)
    {
        delete string;
    }
}
void String::printString(char *string) //Здесь ошибка,но не пойму какая
{
    string = new char[stringLength];
    cout << string << endl;
}
 
char& String::operator[](int index)
{
    if (index < 0 || index > stringLength - 1)
    {
        cout << "Index out of range!\n";
        throw - 1;
    }
    return string[index];
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
 
int main()
{
    //ошибка здесь
    int const strLength = 20;
    char *str = new char[strLength];
    *str = "Hello";
 
    String string;
    string.printString(str);
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2016, 00:44
Ответы с готовыми решениями:

Ввод и вывод строкового массива, исправить код
'Процедура ввода элементов массива типа String с клавиатуры Sub vvodMac(ByRef a() As String, ByVal n As Single) Dim i As...

Вывод в окно строкового массива, используя swing
Здравствуйте, я создал, строковый массив, мне нужно вывеси его в окне, подскажите пожалуйста как это сделать, с помощью чего? Насколько я...

Ввод и вывод одномерного массива строкового типа
Никогда не приходилось работать со строковым массивом... Вот задание: Организуйте в консольном приложении ввод и вывод одномерного...

6
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 01:03
Цитата Сообщение от Lazariev_V Посмотреть сообщение
*str = "Hello";
У меня такое и не компилируется.

Добавлено через 9 минут
Сделаем так:
C++
1
2
3
4
5
void String::printString() 
{
    if (string)
        cout << string << endl;
}
C++
1
2
    String string("Hello");
    string.printString();
1
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
04.10.2016, 01:11  [ТС]
Да,я понимаю,получился бред
Но я просто не знаю,как вывести строковый динамический массив,потому и написал сюда,чтобы мне объяснили как это сделать

Добавлено через 52 секунды
Цитата Сообщение от nd2 Посмотреть сообщение
C++
Ага,понял,сейчас попробую

Добавлено через 7 минут
Цитата Сообщение от Lazariev_V Посмотреть сообщение
Да,я понимаю,получился бред
Но я просто не знаю,как вывести строковый динамический массив,потому и написал сюда,чтобы мне объяснили как это сделать



Ага,понял,сейчас попробую

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
1
   void String::printString() 
   {
     if (string)
        cout << string << endl;
    }
 
 
    
       
 
 String string("Hello");
 string.printString();



Нуу,короче говоря,не работает,компилирует код,высвечивает консоль,но выдает ошибку компилирования программы и прекращает работу
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 01:12
Кода не вижу.
0
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
04.10.2016, 01:16  [ТС]
ответил выше
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 01:19
Вот это исправь так:
C++
1
2
3
4
5
6
String::String(const char * s)
{
    stringLength = strlen(s);
    string = new char[stringLength + 1];
    strcpy(string, s);
}
Добавлено через 47 секунд
Цитата Сообщение от Lazariev_V Посмотреть сообщение
ответил выше
Что выше? Я же не вижу, что ты в main() (или не в main()) сделал. Ясновидящих тут нет.
0
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
04.10.2016, 13:00  [ТС]
Ну
я в мэйне это написал

C++
1
2
3
4
5
6
7
8
9
#include "stdafx.h"
 
int main()
{
    String string("Hello");
    string.printString();
 
    return 0;
}
Добавлено через 11 часов 38 минут
все заработало , спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.10.2016, 13:00
Помогаю со студенческими работами здесь

Вывод строкового массива в label. Что-то пошло не так
По заданию известно, что формат основного массиваstring mas = string , где el - переменная, которая принимает значение с другой формы,...

Вывод наиболее часто повторяющегося элемента строкового массива
Помогите! Вся надежда на вас! Не могу вывести имя, вроде выборку желает, подсчет тоже. Где-то туплю, но не вижу! Type Студенты ...

Как вывести на экран второе слово по счёту из строкового массива?
using System; using System.Linq; namespace ConsoleApp35 { class Program { static void Main(string args) ...

Массив: Организуйте в Windows приложении ввод и вывод одномерного массива строкового типа.
В консольном приложении я сделал, а вот как вывести похожие на форму, не очень себе представляю как, вот задание: Организуйте в Windows...

вывод на экран случайного одномерного массива,ввод с клавиатуры одномерного массива и вывод его на экран.и все это в одной проге.как это сделать?
надо чтобы при запуске прграммы в паскале сначала вывелся на кран одномерный случайный массив,потом ввод с клавиатуры одномерного массива и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru