-
题目描述:
-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
-
输入:
-
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
-
#include <stdio.h> #include <stdlib.h> void replaceSpace(char *str) { int i; int len; len=strlen(str); for(i=0;i<len;++i) { if(str[i]==' ') printf("%%20");// 想输出字符“%”,应该在格式控制字符字符串中用连续两个%表示 printf("%%"); else printf("%c",str[i]); } printf("\n"); } int main() { char str[100000]; while(gets(str)) { replaceSpace(str); } return 0; } /************************************************************** Problem: 1510 User: road Language: C Result: Accepted Time:30 ms Memory:936 kb ****************************************************************/
-
总结一下编写代码过程中,出现的几点问题:
1.输出“%20”
首先想到的是语句printf("%20"),结果发现什么都没输出来,百度了一下发现,%为格式控制符,要想输出%,必须要用连续两个%,
即printf("%%20")。
2. 关于scanf("%s",str) 、 gets(str)
scanf遇到空格Space(或者换行Enter)就停止读取;
gets遇到换行Enter停止读取。
-