Using pointers and avoiding unnecessary local variables, write a function, rmchr
ID: 3822350 • Letter: U
Question
Using pointers and avoiding unnecessary local variables, write a function, rmchr, that takes a string and a character as arguments, removing all occurrences of the character). rmchr should not leave holes in the string. What should rmchr return?
Print the string both before and after your call to rmchr to demonstrate that the original string was modified.
Run your program using the following strings and characters:
string character
"abracadabra" 'a'
"abracadabra" 'b'
"abracadabra" 'n'
"aaaa" 'a'
"aaaa" 'n'
Explanation / Answer
#include <iostream>
using namespace std;
void rmchr (string *s, char c){
while(s->find(c) != -1){
int index = s->find(c);
s->erase(index, 1);
}
}
int main()
{
string s = "abracadabra";
char c = 'a';
rmchr(&s, c);
cout<<"New string: "<<s<<endl;
return 0;
}
Output:
h-4.2$ g++ -o main *.cpp
sh-4.2$ main
New string: brcdbr