请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
void Change_char()
{
char *arr = “we are happy”;
char *tmp = arr;
unsigned int count = 0;
while(*tmp++ != '\0')//采取计数的方式,统计出空格的个数,方便去申请合适的内存大小
{
if(*tmp == ' ')
{
++count;
}
}
int newlen = count*2+strlen(arr)+1;//申请空间的长度
char *newarr = (char *)malloc(sizeof(char) * newlen);//申请空间
memset(newarr,0,sizeof(char)*newlen);//初始化成0,方便debug
if(newarr == NULL)
{
printf("申请空间失败\n");
return ;
}
tmp = newarr;
while(*arr != '\0')
{
if(*arr == ' ')
{
*tmp++ = '%';
*tmp++ = '2';
*tmp++ = '0';
}
else
{
*tmp++ = *arr;
}
arr++;
}
printf("%s\n",newarr);
free(newarr);
newarr = NULL;
return ;
}