【面试算法系列】替换字符串中的空格为其他字符 - C语言实现
来源:互联网 发布:奥杜邦的祈祷 知乎 编辑:程序博客网 时间:2024/05/22 06:48
将一个字符串中的 空格 替换为 ‘%20’ ,
思路:第一遍遍历时候统计出空格个数n,一个空格一个字符,替换为%20之后,字符串所占的空间增加了空格个数的3倍即空间增加了2n,再从最后一个字符开始,向后移动2n,每当遇到一个空格,则插入%20,再往前找字符串往后移动2n-- ……依次找到第一个字符。代码如下:
#include <stdio.h>#include <stdlib.h>void ChangeBlank(char* a) { //将字符串中的空格替换为‘%20’ int i = 0; int sumString = 0;//字符串总长度 int blankString = 0;//字符串中空格的数量 while (a[i] != '\0') { ++sumString; if (a[i] == ' ') { ++blankString; } i++; } // printf("%d[%d]\n", sumString, blankString); int newLength = sumString + blankString * 2; //空格被替换后字符串的总长度 char s[newLength]; while (i >= 0) { if (a[i] != ' ') { s[newLength--] = a[i]; } if (a[i] == ' ') { s[newLength--] = '0'; s[newLength--] = '2'; s[newLength--] = '%'; } i--; } i = 0; while (s[i] != '\0') { printf("%c", s[i]); i++; }}int main() { char *a = "we are human!"; ChangeBlank(a);//输出结果为:we%20%20are%20%20%20%20human! }
0 0
- 【面试算法系列】替换字符串中的空格为其他字符 - C语言实现
- 替换字符串中的空格为其他字符
- 将字符串中的指定字符替换为其他指定字符
- C语言中字符替换为字符串
- 【c语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
- 【C语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
- (C语言)字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
- 算法--替换字符串的空格为指定字符
- 面试4之字符串中的空格全部替换为“%20”
- [面试] 算法(五)—— 替换字符串中的空格
- 【C++】将字符串中的空格替换成字符
- 【C语言】请实现一个函数,把字符数组中的每个空格替换成“%20”
- 算法:替换字符串中的空格
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”。
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”。
- 去除字符串中的空格 C语言实现
- 《linux 内核Makefile》之$(CURDIR)/Makefile Makefile: ;
- 中文URL处理
- 飞思卡尔智能车后感
- java第三弹--组合模式
- leetcode7 Reverse Integer
- 【面试算法系列】替换字符串中的空格为其他字符 - C语言实现
- 【jQuery】保持this所指向的元素(以Ajax为例说明)
- 从矩形框开始说起
- 【医学】【信息工程】心电图分析方法的自学
- C++浅拷贝和深拷贝的区别
- Activity的四种启动模式(LaunchMode)
- Python中is和==的区别
- IOS 绘制背景色渐变的矩形
- 将博客搬至CSDN