面试题4 替换空格
2014-11-01 14:39
302 查看
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
输入:
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
输出:
对应每个测试案例,出经过处理后的字符串。
样例输入:
样例输出:
题意;替换
解题;
两种解法
1. 读入一个字符,判断后按照规律输出,不是空格输出字符,是空格输出%20(注意输出要%%20)
2. 建立一个字符数组,在字符数组本地变换。需要首先遍历一边,统计出空格的个数,从而算出变换后的新字符串的长度。
代码:
代码2:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
输入:
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
输出:
对应每个测试案例,出经过处理后的字符串。
样例输入:
We Are Happy
样例输出:
We%20Are%20Happy
题意;替换
解题;
两种解法
1. 读入一个字符,判断后按照规律输出,不是空格输出字符,是空格输出%20(注意输出要%%20)
2. 建立一个字符数组,在字符数组本地变换。需要首先遍历一边,统计出空格的个数,从而算出变换后的新字符串的长度。
代码:
#include<iostream> #include <cstdio> #include <cstring> using namespace std; int main() { //freopen("572.txt","r",stdin); char ch; while( (ch = getchar()) != '\n') { if(ch == ' ') printf("%%20"); else printf("%c",ch); } printf("\n"); return 0; }
代码2:
#include<iostream> #include <cstdio> #include <cstring> using namespace std; char str[1000000]; int main() { //freopen("572.txt","r",stdin); while(gets(str)) { int len = strlen(str); int cnt = 0; for(int i = 0; i < len; i++) if(str[i] == ' ') cnt++; int nlen = len + 2*cnt; str[nlen] = '\0'; nlen--; for(int i = len-1; i >= 0; i--) { if(str[i] != ' ') { str[nlen] = str[i]; nlen--;} else { str[nlen] = '0'; nlen--; str[nlen] = '2'; nlen--; str[nlen] = '%'; nlen--; } } puts(str); } return 0; }
相关文章推荐
- 剑指offer——面试题4:替换空格
- 面试题3:替换空格和清除空格
- 剑指offer-面试题4 - 替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- (剑指Offer)面试题4:替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 【练习笔记】剑指offer-面试题4 :替换空格
- 《剑指offer》面试题4 替换空格为%20
- 面试题4:替换空格
- 剑指offer面试题[4]-空格替换
- 面试题4:替换空格之发散思维
- [剑指offer]面试题4:替换空格
- 剑指Offer算法题之字符串替换字符--面试题4:替换空格
- 【剑指offer】面试题四:替换空格
- 面试题2:替换空格
- 面试题4:替换空格
- 剑指Offer,面试题4,替换空格,Java写法