fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4. #include <assert.h>
  5.  
  6. void RemoveCharacterFromString(char character_for_remove, std::string &string) {
  7. auto it = std::remove_if(std::begin(string), std::end(string),
  8. [=](char c) { return c == character_for_remove; });
  9. string.erase(it, std::end(string));
  10. }
  11.  
  12. void RemoveAllCharactersInRangeFromString(char from, char to,
  13. std::string &string) {
  14. assert(from <= to);
  15. for (auto curr_character = from; curr_character <= to; ++curr_character) {
  16. RemoveCharacterFromString(curr_character, string);
  17. }
  18. }
  19.  
  20. char *StringToCharArray(const std::string &str, char *s) {
  21. std::copy(std::begin(str), std::end(str), s);
  22. s[str.size()] = '\0';
  23. return s;
  24. }
  25.  
  26. char *Del_Useless(char *s) {
  27. std::string string(s);
  28. RemoveAllCharactersInRangeFromString('j', 'z', string);
  29. RemoveAllCharactersInRangeFromString('J', 'Z', string);
  30. return StringToCharArray(string, s);
  31. }
  32.  
  33. int main() {
  34. char raw_str[100] = "aaa bbb ccc ddd ccc fff eee ggg fff jj asdf z asdf";
  35. std::cout << "Raw string : " << raw_str << '\n';
  36. auto cleaned_string = Del_Useless(raw_str);
  37. std::cout << "after remove: " << cleaned_string << '\n';
  38. std::cout << "Raw string : " << raw_str << '\n';
  39. }
  40.  
Success #stdin #stdout 0s 3276KB
stdin
Standard input is empty
stdout
Raw string  : aaa bbb ccc ddd ccc fff eee ggg fff jj asdf  z asdf
after remove: aaa bbb ccc ddd ccc fff eee ggg fff  adf   adf
Raw string :  aaa bbb ccc ddd ccc fff eee ggg fff  adf   adf