Задача: Удалить из введенной строки такие знаки как: точка, запятая, знак вопроса и восклицательный. Решить надо без использования string
Вопрос: Почему программа неверно работает, алгоритм вроде верный?
Мое решение:
#include "pch.h"
#include <iostream>
#include <Windows.h>
char delete_punctuatuion(char* a, int& size);
int main()
{
using namespace std;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char a[] = "";
cin.getline(a, 128);
int size = 0;
*a = delete_punctuatuion(a, size);
cout << "Измененная строка:\n";
for (int i = 0; i < size; i++)
{
cout << a[i];
}
}
char delete_punctuatuion(char* a, int& size)
{
int b = 0;
int const line_lenght = strlen(a);
for (int i = 0; i < line_lenght; i++)
{
if (a[i] != '.' && a[i] != ',' && a[i] != '!' && a[i] != '?')
b++;
}
char* new_line = new char[b + 1];
for (int i = 0; i < line_lenght; i++)
{
if (a[i] != '.' && a[i] != ',' && a[i] != '!' && a[i] != '?')
new_line[i] = a[i];
}
new_line[b] = '\0';
size = strlen(new_line);
return *new_line;
}