Другие языки программирования и технологии

народ! помогите помочь в Си++

Из строки удалить среднюю букву, если длина строки нечетная, и две средних в противном случае. это по теме СТРОКИ
Из строки удаляются символы а не буквы, так как она может содержать цифры знаки препинания, форматирования и другие специальные символы.

#include <iostream>
#include <string>
using namespace std;

int main()
{
string str;
char * p;
int size, middle, temp;

cout << "\n Enter line: "; getline(cin, str);

size = str.size();
p = new char [size + 1];
strcpy (p, str.c_str());

if (size % 2 == 0)
{
middle = size / 2 + 1;

for (int n = middle; n < size; n++)
{
p[n - 2] = p[n];
p[n - 1] = p[n + 1];
}
}
else
{
middle = size / 2;

for (int n = middle; n < size; n++) p[n] = p[n + 1];
}

cout << endl << p;

fflush(stdin);
cin.get();
return 0;
}
Жомол Матякупов
Жомол Матякупов
79 550
Лучший ответ
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "string? ";
cin >> s;
int l = s.length();
s.erase(l % 2? l / 2 : (l - 1) / 2, l % 2? 1 : 2);
cout << "result: '" << s << "'" << endl;
return 0;
}
var s:String;i:Integer;
begin
write('S:=');readln(s);
i:=length(s);
if i mod 2=0 then delete(s,i div 2,2) else delete(s,i div 2+1,1);
writeln(s);
end.
"помогите помочь" чегошеньки?
Андрей Львов
Андрей Львов
2 238
Если нужно алгоритм, то так. Ввести с клавиатуры строку. Определить ее длину с помощью функции. Если остаток от деления длины на 2 не ноль, вызывается функция удаления подстроки с номера = этому остатку, второй аргумент =1. Если остаток от деления длины на 2 = ноль, вызывается функция удаления подстроки с номера = результату от деления длины на 2, второй аргумент =2.