#include
#include
using namespace std;
int main()
{
char **mass = new char *[8];
for(int i = 0; i < 8; i++)
{
mass[i] = new char[20];
cin >> mass[i];
}
for(int i = 0 ; i < 8; i++)
{
for(int j = i + 1; j < 8; j++)
{
if(strcmp(mass[i], mass[j]) > 0)
{
char* tmp = mass[i];
mass[i] = mass[j];
mass[j] = tmp;
}
}
}
for(int i = 0; i < 8; i++)
{
cout << mass[i] << endl;
}
return 0;
}
Переделать код на функцию с++
Заранее спасибо!
Ответы
Вот как можно переделать этот код в функцию на C++:
cpp
Copy code
#include <iostream>
#include <cstring>
using namespace std;
void sortStrings(char** strings, int size)
{
for(int i = 0; i < size; i++)
{
for(int j = i + 1; j < size; j++)
{
if(strcmp(strings[i], strings[j]) > 0)
{
char* tmp = strings[i];
strings[i] = strings[j];
strings[j] = tmp;
}
}
}
}
int main()
{
const int SIZE = 8;
char** mass = new char*[SIZE];
for(int i = 0; i < SIZE; i++)
{
mass[i] = new char[20];
cin >> mass[i];
}
sortStrings(mass, SIZE);
for(int i = 0; i < SIZE; i++)
{
cout << mass[i] << endl;
}
for(int i = 0; i < SIZE; i++)
{
delete[] mass[i];
}
delete[] mass;
return 0;
}
Мы создали функцию sortStrings(), которая сортирует массив строк, переданный в качестве аргумента, и его размер. Затем мы вызываем эту функцию в основной функции main().
Важно обратить внимание на удаление выделенной динамической памяти. Мы должны удалить каждый элемент массива строк, а затем удалить сам массив.