这篇文章主要介绍了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;}新闻热点
疑难解答
图片精选