字符串替换空格

来源:互联网 发布:维多利亚大学 知乎 编辑:程序博客网 时间:2024/06/03 21:15

请实现一个函数,把字符串中的每个空格替换成“%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;}


原创粉丝点击