這篇文章主要介紹了C++語言在不使用庫的條件下,實現Trim函數。 面試過程中碰到問題,當時說了下思路,回來之后寫代碼驗證了一下。
主要思想是加了一個指針,記錄最后一個非空格的字符。時間復雜度為o(n)。
代碼如下:
//獲取字符串第一個非空格的字符char* GetFirstNotSpace(char* str){ if(str == NULL) return NULL; char* pCurrent = str; while(*pCurrent == ' ') { ++pCurrent; } return pCurrent;}char* Trim(char* str){ if(str == NULL) return NULL; char* pBegin = GetFirstNotSpace(str); char* pCurrent = pBegin; char* pLastNotSpace = pBegin; //最后一個非空格的字符 while(*pCurrent != '/0') { //遇到非空格的字符,更新pLastNotSpace if (*pCurrent != ' ') { pLastNotSpace = pCurrent; } ++pCurrent; } *(pLastNotSpace+1) = '/0'; return pBegin;}新聞熱點
疑難解答
圖片精選