解法1:从前往后扫描,碰到空格就替换,空格后面的元素向后移2。显然这种方式中有很多冗余的移动操作,其复杂度为O(n2)
解法2:先遍历一遍获得空格的总个数。
1 #include<iostream> 2 3 using std::cout; 4 using std::cin; 5 using std::endl; 6 7 void ReplaceBlank(char str[],int length) 8 { 9 if (str==NULL||length<=0) 10 { 11 std::cerr << "string is empty OR null" << endl; 12 return; 13 } 14 15 int originlength = 0; 16 int numberOfblank = 0; 17 int i = 0; 18 while (str[i]!='