C++删除字符串中特定的字符
//处理string类型的方法del_sp(string &str)待测试 //处理C-Style的方法可用,可以考虑将该方法改写为void del_ch(char *src , char ch),使其更加通用化。 #include <iostream> #include <string> using namespace std; void del_sp(char *src); // 删除C风格字符串中的空格 void del_sp(string &str); // 重载del_sp,调用C风格的函数 int main() { char hl[] = "删 除 空 格Hello world! Hello world! 88 "; cout << hl << endl; del_sp(hl); cout << hl << endl; string str("删 除 空 格Hello world! Hello world! 88 "); cout << str << "\n长度" << str.size() << endl; del_sp(str); //调用重载的 del_sp cout << str << "\n长度" << str.size() << endl; return 0; } void del_sp(char *src) // 删除C风格字符串中的空格 { char * fp = src; while (*src) { if (*src != ' ') { // 如果不是空格就复制 *fp = *src; fp++; } src++; } *fp = '\0' ; //封闭字符串 } void del_sp(string &str) // 删除string字符串中的空格 { // 因为str.c_str() 是const的,不能直接修改, // 所以要复制一个临时的,然后修改后换回去 char tmp[str.size()+1]; memcpy(&tmp, str.c_str(), str.size() + 1); del_sp(tmp); // 重载del_sp,调用C风格的函数 str = tmp; }