C语言:字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
程序员文章站
2023-02-07 11:33:53
从前往后:在原基础上进行替换(当然前提是空间足够),如果从前往后遇到空格就替换,必然会对原来的字符造成覆盖,不可以实现。
因为把空格替换为”%20&ldquo...
从前往后:在原基础上进行替换(当然前提是空间足够),如果从前往后遇到空格就替换,必然会对原来的字符造成覆盖,不可以实现。
因为把空格替换为”%20“,每次替换多2个字符,因此可以统计出字符串中空格的总个数,然后新数组大小为 “原数组大小 + 2*空格数 ”。从后往前处理:遇到非空格,直接搬到后面,遇到空格替换为”%20“. 直到待插入位置指针和原数组为指针重合位置。
#include<stdio.h> #include<string.h> int main() { char arr[] = "we are happy."; int i = 0; int j = 0; int len = 0; int count = 0; len = strlen(arr); for(i = 0;i < len;i++) { if(arr[i] == ' ') { count ++; } } i = len; j = 2 * count + len; while(i != j && i >= 0) { if(arr[i] == ' ') { arr[j--] = '0'; arr[j--] = '2'; arr[j--] = '%'; i--; } else { arr[j] = arr[i]; j--; i--; } } len = strlen(arr); for(i = 0; i< len ;i++) { printf("%c",arr[i]); } printf("\n"); return 0; }
上一篇: C语言实现数组的奇偶排序
下一篇: liunx----配置搜狗输入法