题目1510:替换空格
【代码】
【解析】
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:1697
解决:436
-
题目描述:
-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
-
输入:
-
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
/*********************************
* 日期:2013-10-16
* 作者:SJF0115
* 题号: 九度OJ 题目1510:替换空格
* 来源:http://ac.jobdu.com/problem.php?pid=1510
* 结果:AC
* 来源:剑指Offer
* 总结:
**********************************/
#include<stdio.h>
#include<string.h>
char str[10000001];
int main()
{
int i,j,len;
while(gets(str)){
int count = 0;
int len = strlen(str);
//统计空格的个数
for(i = 0;i < len;i++){
if(str[i] == ' '){
count++;
}
}
//原始字符串末尾
i = len;
//替换之后字符串末尾
j = 2*count+len;
//i == j 表示空格替换完毕
while(i != j && i >= 0){
if(str[i] == ' '){
str[j--] = '0';
str[j--] = '2';
str[j--] = '%';
i--;
}
else{
str[j] = str[i];
j--;
i--;
}
}
//输出替换之后的字符串
len = strlen(str);
for(i = 0;i < len;i++){
printf("%c",str[i]);
}
printf("\n");
}
return 0;
}
【解析】
【第二种方法】