面试题整理-空格变更
2012-10-15 22:22
204 查看
题目:
给定个字符串,把这个字符串中的空格更改成为%20。
假定这个字符串的空间是够用的。
解法
首先计算空格数目x与非空格数目y。
那么更改之后的字符串长度为3x+y;
计算出长度之后,再从尾部向前拷贝。
给定个字符串,把这个字符串中的空格更改成为%20。
假定这个字符串的空间是够用的。
解法
首先计算空格数目x与非空格数目y。
那么更改之后的字符串长度为3x+y;
计算出长度之后,再从尾部向前拷贝。
#include <stdio.h> #include <stdlib.h> #include <string.h> char *change(char *src) { int cnt_space = 0, cnt_word = 0; int len = -1, target_pos; if (!src) return NULL; while (src[++len] != '\0') { cnt_space += ' ' == src[len]; cnt_word += ' ' != src[len]; } target_pos = cnt_space * 3 + cnt_word; while (len >= 0) { if (' ' == src[len]) { src[target_pos--] = '0'; src[target_pos--] = '2'; src[target_pos--] = '%'; } else { src[target_pos--] = src[len]; } --len; } return src; } int main(void) { char s[4096]; int read = 0; while (gets(s) != EOF) { printf("%s\n", change(s)); } return 0; }
相关文章推荐
- 【Killua笔试面试题整理】连续整数之和为1000
- 综合面试题整理(上)
- 面试题整理 8 字符串排序扩展题
- 整理下自己使用的sqlserver DBA面试题
- 整理的前端面试题2
- 2010 .NET面试题整理之基础篇
- 剑指offer 面试题4:替换空格
- iOS开发面试题整理
- Android--面试题整理(三)
- python 常见面试题整理
- 笔试面试题整理,慢慢搜集....持续更新
- 网页重构面试题(整理)
- 自己可能用到的笔试面试题(整理C/C++)
- BAT、网易、蘑菇街面试题整理-4
- SSH面试题整理
- BAT、网易、蘑菇街面试题整理-5
- 2017 Android面试题整理
- .net 面试题整理
- 常见面试题整理+网易实习生面试
- java 面试题整理(不定期更新)