,先判断多少个空格, 再从后向前逐个插入0 2 %填补空白
void ReplaceBlank(char *str, int length)
{
int i = 0;
int indexOfOri = 0;
int indexOfBlank = 0;
int indexSizeof = 0;
while(str[i] != '\0')
{
++indexOfOri;
if (str[i] == ' ')
{
++indexOfBlank;
}
++i;
}
indexSizeof = sizeof(str);
int newLength = indexOfOri + indexOfBlank * 2;
//设定空间大小
if(newLength > length)
return;
int indexOfOld = indexOfOri;
int indexOfNew = newLength;
while(indexOfOld >= 0 && indexOfNew > indexOfOld)
{
if (str[indexOfOld] == ' ')
{
str[indexOfNew--] = '0';
str[indexOfNew--] = '2';
str[indexOfNew--] = '%';
}
else
{
str[indexOfNew--] = str[indexOfOld];
}
--indexOfOld;
}
for (int i = 0; i < newLength; ++i)
{
printf("%c", str[i]);
}
printf("\n");
}