#include <cstring>
#include <algorithm>
#include <iostream>
int main() {
using namespace std;
char s[] = "helelo";
cout << s << '\n';
char *end = s + strlen(s);
end = remove(s, end, 'e');
*end = '\0';
cout << s << '\n'; // hllo
return 0;
}
Обратите внимание, что вы не можете изменять строковые литералы, поэтому я использовал массив символов. Std :: string будет еще проще.
Если вы хотите понять, как работает std :: remove, инстанцирование char * (так как это шаблон) для простоты будет выглядеть примерно так:
char* remove(char *begin, char *end, char value) {
char *next = begin;
for (; begin != end; ++begin) {
if (*begin != value) {
*next++ = *begin;
}
}
return next;
}