题目:请实现一个函数,把字符串中的每个空格替换成%20。
#include <stdio.h>
void replace(char a[], int length)
{
if(a==NULL || length<=0)
return;
int len_original = 0;//原字符串长度
int len_new = 0;//新字符串长度
int num_blank = 0;//空格个数
int i = 0;
while(a[i] != 0)//扫一遍,计算原字符串长度和空格个数
{
if(a[i] == ' ')
num_blank++;
len_original++;
i++;
}
len_new = len_original + num_blank*2;
if(len_new+1 > length)//超过字符数组容量
return;
int m = len_original;
int n = len_new;
while(m>=0 && n>m)
{
if(a[m] == ' ')//遇到空格
{
a[n--] = '0';
a[n--] = '2';
a[n--] = '%';
}
else
{
a[n--] = a[m];
}
m--;
}
}
int main()
{
char a[30] = "we are happy!";
printf("原字符串为:\n%s\n",a);
replace(a,30);
printf("替换空格后的字符串为:\n%s\n",a);
return 0;
}