-
题目描述:
-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
-
输入:
-
每个输入文件仅包含一组测试样例。对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
AC代码:(注意最后不用输出换行符!)
#include<stdio.h>
void replace(char *a, char *b) {
while(*a != '\0') {
if(*a != ' ') {
*b++ = *a++;
}
else {
*b++ = '%';
*b++ = '2';
*b++ = '0';
a++;
}
}
*b = '\0';
}
int main() {
char a[1000], b[3000];
while (fgets(a, 1000, stdin)) {
replace(a, b);
printf("%s", b);
}
return 0;
}
/**************************************************************
Problem: 1510
User: wusuopuBUPT
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/
方法二:
并不“真正地”替换掉,而是在输出时遇到空格就输出"%20":
#include<stdio.h>
#include<string.h>
char s[100000001];
int main() {
int i, len;
while (gets(s)) {
len = strlen(s);
for (i = 0; i < len; i++) {
char c = *(s + i);
if (c != ' ') {
printf("%c", c);
} else {
printf("%%20");
}
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1510
User: wusuopuBUPT
Language: C
Result: Accepted
Time:30 ms
Memory:98568 kb
****************************************************************/
--------------------------------------------------------------------
小结:
打印字符串比逐个字符打印要快!