面试题5:替换空格
方法:首先遍历字符串,统计空格的个数,然后扩容字符串,使用两个指针,一个指向原字符串末尾,另一个指向扩容后的字符串末尾,依次向前移动指针,遇到字符就将前面指针的字符复制到后面的指针,遇到空格则依次替换为%20,时间复杂度为O(n)。
完整代码:
// length为字符串string的总容量 void ReplaceBlank(char string[], int length) { if(string == nullptr || length <= 0) return; // originalLength为字符串string的实际长度 int originalLength = 0; int numberOfBlank = 0; int i = 0; //统计空格数 while(string[i] != '