思路:
先遍历一遍字符串找出空格的数目,有空格则把空格数+1.
两个指针,一个指向原字符串结尾,一个指向替换后的字符串末尾。替换后的字符串长度等于原字符串长度+2*空格数。
循环结束的条件是oldend=newend,就停止循环。
char* Repalce (char * str )
{
int blank = 0;
int newlen = 0;
int oldlen = strlen( str);
for ( int i = 0; i < oldlen; ++ i)
{
if (*( str + i) == ' ')
blank++;
}
newlen = oldlen + 2 * blank;
char* newend = str + newlen;
char* oldend = str + oldlen;
while ( oldend < newend)
{
if (* oldend == ' ')
{
for ( int i = 1; i <= 3;++ i)
* newend-- = '$';
oldend--;
}
else{
* newend-- = * oldend--;
}
}
return str;
}