题目1510:替换空格
【代码】
【解析】
/*********************************
* 日期: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;
}
【解析】
【第二种方法】