Тема: Видалення елементів із символьного масиву
Завдання.Видалити перші літери слів із рядка, рядок обов'язково має закінчуватися крапкою. Використати клас.
Є спосіб видалення елемента із масиву не створюючи додатковий масив ?
Правильно я видаляю елементи (void class_string::Delete_symbol()) чи є простіший спосіб ?
#include <conio.h>
#include <iostream>
using namespace std;
class class_string
{
private:
char String[500];
public:
bool Enter_string();
void Delete_symbol();
}object;
bool class_string::Enter_string()
{
cin.getline(object.String, 500);
if (object.String[strlen(object.String) - 1] != '.')
{
cout << "Error! last character must be a point '.'";
return false;
}
else
return true;
}
void class_string::Delete_symbol()
{
//Видалення першої літери слів
char *cpy_String = new char[strlen(object.String)];
strcpy(object.String, &object.String[1]);
for (int i = 0; object.String[i + 1] != '\0'; i++)
{
if (object.String[i] == ' ')
if (object.String[i + 1] == ' ')
continue;
else
{
strcpy(cpy_String, object.String);
object.String[i + 1] = '\0';
strcpy(cpy_String, &cpy_String[i + 2]);
strcat(object.String, cpy_String);
}
}
//Вивід інформації
cout << object.String;
}
int main()
{
if (!object.Enter_string())
{
getch();
return 1;
}
object.Delete_symbol();
getch();
return 0;
}