题目

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

题解

字符串处理算法题 -> 替换空格_题目

 

字符串处理算法题 -> 替换空格_题目_02

char* replaceSpace(char* string)
{
int space_cnt = 0;
for (int i=0;i<strlen(string);i++)
{
if (*(string+i) == ' ') space_cnt++;
}
char *p_head = NULL, *p_end = NULL;
p_head = &string[strlen(string)];
p_end = &string[strlen(string) + space_cnt*2];
for (int i = 0; i < strlen(string); i++)
{
if (p_end == p_head)
{
return string;
}
if (*p_head == ' ')
{
*p_end = '0';
*(--p_end) = '2';
*(--p_end) = '%';
p_head--;
p_end--;
}
else
{
*(p_end--) = *(p_head--);
}
}
return NULL;
}

结果

字符串处理算法题 -> 替换空格_算法_03