请实现一个函数,将一个字符串中的空格替换成“%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 ****************************************************************/
--------------------------------------------------------------------
小结:
打印字符串比逐个字符打印要快!
原文:http://blog.csdn.net/wusuopubupt/article/details/18401017