劍指offer--京東演算法面試(將字串中的隨機個數的空格數替換為一個空格)
阿新 • • 發佈:2018-12-21
#include <iostream> #include <string.h> #include <stdlib.h> using namespace std; /** \brief: 將I have a family! 替換為 I have a family!. \input: src:源字串 \ strLen:源字串的長度 \output:desc:目標字串 */ void ReserveOneEmpty(char *desc, char *src, int srcLen) { char *s_desc = desc; char *s_src = src; if (desc == nullptr || src == nullptr || srcLen <= 0) { return; } // 處理開始為空格的字串情況 while (*s_src == ' ') { s_src ++; } while (*s_src != '\0') { if (*s_src != ' ') { *(s_desc ++) = *(s_src ++); } else { while (*s_src == ' ') { s_src ++; } *(s_desc ++) = ' '; *(s_desc ++) = *(s_src ++); } } *s_desc = '\0'; } int main() { char *src = " I have a family!"; int srcLen = strlen(src); char *desc = (char *)malloc(sizeof(char) * srcLen + 1); ReserveOneEmpty(desc, src, srcLen); cout << src << endl; cout << desc << endl; return 0; }