Нечитаемые символы в cout

144
01 апреля 2018, 20:44

Вот весь код, подскажите пожалуйста на каком этапе ломается читаемость и как это исправить?

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <cctype>
#include <cstring>
using namespace std;
int Comp1(const void* a, const void* b);
int Comp2(const void* a, const void* b);
int main(int argc, char** argv)
{
    srand(time(0));
    char mass1[31];
    char mass2[51];
    int temp = 0;
    int new_size1 = 0;
    int new_size2 = 0;
    int *nums = new int [new_size1];
    char *symbs = new char [new_size2+1];
    for (int i=0; i<30; i++)            //рандомим первый массив
    {
        mass1[i] = rand() % 127;
    }
    for (int i=0; i<50; i++)            //рандомим второй массив
    {
        mass2[i] = rand() % 127;
    }
    for (int i=0; i<30; i++)            //считаем сколько цифр и букв в первом
    {
        if (isdigit (mass1[i])) {
            new_size1++;
        } else if (isalpha (mass1[i])) {
            new_size2++;
        }
    }
    for (int i=0; i<50; i++)            //считаем сколько цифр и букв во втором
    {
        if (isdigit (mass2[i])) {
            new_size1++;
        } else if (isalpha (mass2[i])) {
            new_size2++;
        }
    }
    for (int i=0; i<30; i++)            //цифри из первого массива к цифрам
    {
        if (isdigit (mass1[i])) {
            nums[temp] = mass1[i];
            temp++;
        }
    }
    for (int i=0; i<50; i++)            //цифри из второго массива к цифрам
    {
        if (isdigit (mass2[i])) {
            nums[temp] = mass2[i];
            temp++;
        }
    }
    cout << "Всего цифр должно быть: " << new_size1 << endl;
    temp = 0;
    for (int i=0; i<30; i++)            //буквы из первого массива к буквам
    {
        if (isalpha (mass1[i])) {
            symbs[temp] = mass1[i];
            temp++;
        }
    }
    for (int i=0; i<50; i++)            //буквы из второго массива к буквам
    {
        if (isalpha (mass2[i])) {
            symbs[temp] = mass2[i];
            temp++;
        }
    }
    cout << "Всего букв должно быть: " << new_size2 << endl << endl;
    temp = 0;
    cout << "Вот цифры из массивов: ";
    for (int i=0; i<new_size1; i++)
    {
        cout << nums[i] << " ";
    }
    cout << endl;
    cout << "Вот цифры по возрастанию: ";
    qsort(nums, new_size1, sizeof(int), Comp2);
    for (int i=0; i<new_size1; i++)
    {
        cout << nums[i] << " ";
    }
    cout << endl << endl;
    cout << "Вот буквы из массивов: ";
    for (int i=0; i<new_size2; i++)
    {
        cout << symbs[i] << " ";
    }
    cout << endl;
    for (int i=0; i<new_size2; i++)
    {
        symbs[i] = (char)tolower(symbs[i]);
    }
    qsort(symbs, strlen(symbs), sizeof(*symbs), Comp1);
    cout << "А теперь по алфавиту: ";
    for (int i=0; i<new_size2; i++)
    {
        cout << symbs[i] << " ";
    }
    cout << endl << endl;

    return 0;
}
int Comp1(const void* a, const void* b)
{
    return *(char*)a-*(char*)b;
}
int Comp2(const void* a, const void* b)
{
    return *(int*)a-*(int*)b;
}

Answer 1

Первые же строки уже ошибочны

int new_size1 = 0;
int new_size2 = 0;    
int *nums = new int [new_size1];
char *symbs = new char [new_size2+1];
создаете массивы с размером ноль...
READ ALSO
Запуск Gitlab Runner для C++/Qt проекта на Mac OS

Запуск Gitlab Runner для C++/Qt проекта на Mac OS

Здравствуйте! Есть задача запустить Gitlab Runner для сборки C++/Qt проекта на Mac OSЗнаю, что для сборки просто C++ проекта можно использовать Nuget и MSBuild

157
Объясните, как работает этот foreach для tuple

Объясните, как работает этот foreach для tuple

Помогите разобраться, как работает функция обхода кортежа:

182
Is not valid win32 application

Is not valid win32 application

В общем когда запуская приложение высвечивается ошибка "is not valid win32 application"На просторах интернета ответов не нашёл по этому обращаюсь сюда

168
Сортировка элементов структуры типа string c++

Сортировка элементов структуры типа string c++

Не знаю какой должная быть ф-ия, которая принимает массив структур и сортирует его по одному элементу типа string, да ещё и по алфавитуМожет кто...

172