-
题目描述:
-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
-
输入:
-
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
PS:
- 九度测试的样例不止提供的那个,还会有其他测试输出。这个题中的输入要求,“每个输入文件仅包含一组测试样例”,所以在一开始,代码写的还是只有一次输入的形式,果断出错了。需要在主程序中用一个循环读取字符串的函数来解决这个问题!
- 字符串数组大小设置大一些,刚开始数组大小太小,5个验证通过了4个。泪奔了都……
get:先判断源字符串数组中有几个空格,根据空格的多少调整目标字符串的大小。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int cnt = 0;
int len = 0;
int i,j;
char str[10000000];
while(gets(str))
{
len = strlen(str); //计算字符串长度
for(i=0; i<len; i++)
if(str[i] == ' ')
cnt++;
for(i=len, j=len+2*cnt; i>=0; i--)
{
if(str[i] == ' ')
{
str[j--] = '0';
str[j--] = '2';
str[j--] = 37;
}
else
{
str[j--] = str[i];
}
}
puts(str);
}
return 0;
}
/**************************************************************
Problem: 1510
User: 夏鸥易
Language: C
Result: Accepted
Time:10 ms
Memory:10608 kb
****************************************************************/