您的位置:首页 > 其它

字符串替换空格

2017-07-17 18:44 218 查看
请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are happy.”,则输出“we%20are%20happy.”。

分析:“ ”占一个字节,“%20”占三个字节,因此在替换的时候数组需要扩容。

1.遍历字符串,求出空格的个数,确定扩容的大小。

2.从后往前,遇到空格,将字符‘0’、‘2’、‘%’赋值给新数组元素。

3.从后往前,遇到不是空格,将原数组元素赋值给新数组元素。

int main()
{
char arr[] = "we are happy." ;
int len1 = 0;
len1 = sizeof(arr)/sizeof(arr[0])-1;
int bank = 0;
int i,j;
int len2=0;
for (i = 0; i < len1; i++)
{
if (arr[i] == ' ')
{
bank++;
}
}
i = len1;
j = len1 + 2 * bank;
while(i != j && i >= 0)
{
if (arr[i] == ' ')
{
arr[j--] = '0';
arr[j--] = '2';
arr[j--] = '%';
i--;
}
else
{
arr[j] = arr[i];
j--;
i--;
}
}
len2 = strlen(arr);
for (i = 0; i < len2; i++)
{
printf("%c", arr[i]);
}
printf("\n");
system("pause:");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: