原文:https://snipt.net/aolin/c-6/
//處理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; }