0 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 7
1

Мусор в конце выведенной строки

10.12.2017, 00:03. Показов 1763. Ответов 4

Author24 — интернет-сервис помощи студентам
В конце разделенной строки выводит совершенной левый мусор, не могу никак разобраться в чем дело, объясните, пожалуйста.


Вот код:

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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    char* str = new char[80];
    cin.getline(str, 80);
    char* res1 = NULL;
    char* res2 = NULL;
    char delim = '_';
    int count = 0;
    while (str [count] != delim)
    {
        count++;
    }
    
    res1 = new char[count];
    int count2 = strlen(str) - count;
    res2 = new char[count2];
    
    for (int i = 0; i<count; i++)
    {
        res1[i] = str[i];
        
    }
    for (int i = 0; i<count2; i++)
    {
        res2[i] = str[i + count];
        
    }
    
 
    cout << res1 << endl;
    cout << res2 << endl;
    delete[] str;
    delete[] res1;
    delete[] res2;
 
    system("pause");
    return 0;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2017, 00:03
Ответы с готовыми решениями:

Мусор в конце строки
перенос фразы из строки wrd в nwrd, все время дописывает в конце мусор #include &lt;iostream&gt;...

Убрать мусор в конце строки
после произвольных символов букв выводится (эээээ&lt;&lt;&lt;&lt;&lt;юоюою) for (int k = 0; k &lt; 10; k++) {...

Почему выводит в конце строки мусор?
Выводит нужную строку... и мусор в конце Переменная len принимает правильное значение При входе в...

работа со строками, мусор в конце строки
если можете, объясните вкратце (я не нашел ответа в справочнике) почему у меня при работе со...

4
21 / 7 / 3
Регистрация: 29.08.2014
Сообщений: 78
10.12.2017, 00:24 2
Лучший ответ Сообщение было отмечено KitaKit как решение

Решение

Попробовал запустить код в online IDE, мусор не выводился.
Обычно такая проблема возникает, если забыть добавить символ конца строки: '\0'.
1
0 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 7
10.12.2017, 11:48  [ТС] 3
А куда нужно его добавить? Где только не пытался его вставить, все равно работает не правильно(((
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
10.12.2017, 11:55 4
Лучший ответ Сообщение было отмечено KitaKit как решение

Решение

Цитата Сообщение от KitaKit Посмотреть сообщение
А куда нужно его добавить?
В конец строки...
C++
1
2
res1[count] = 0;
res2[count2] = 0;
Ну и размеры соответствующих массивов нужно увеличить на 1 символ.
1
0 / 0 / 0
Регистрация: 07.12.2017
Сообщений: 7
10.12.2017, 12:42  [ТС] 5
Разобрался, всем спасибо
0
10.12.2017, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2017, 12:42
Помогаю со студенческими работами здесь

Мусор при выводе не смотря на \0 символ в конце строки
qq Есть проблемка с выводом мусора в конце строки Вот код: #include &quot;stdafx.h&quot; #include...

Выводит в конце мусор
Задание такое: напишите функцию print_array (ostream os, int* a, int n) выводящую в поток os...

Мусор в конце строки и зависание
.model tiny .data messageA db &quot;ABC$&quot; messageB db 10,13,&quot;DEF$&quot; .stack 256h .code .486

Выводится мусор в конце строки
При выводе вместе с нужным значением выводится мусор #include &quot;stdafx.h&quot; long int len1(char*adr)...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru