1 /*************************************************************************
2 > File Name: 02_Replace_Blank.c
3 > Author: Juntaran
4 > Mail: JuntaranMail@gmail.com
5 > Created Time: 2016年08月24日 星期三 01时28分33秒
6 ************************************************************************/
7
8 #include <stdio.h>
9
10 void ReplaceBlank(char* str)
11 {
12 if (str==NULL)
13 {
14 return;
15 }
16
17 int blankCount = 0;
18 int alphaCount = 0;
19 int i = 0;
20 while (str[i] != '\0')
21 {
22 if (str[i] == ' ')
23 blankCount ++;
24 alphaCount ++;
25
26 i ++;
27 }
28 printf("alphaCount is %d\n", alphaCount);
29 printf("blankCount is %d\n", blankCount);
30
31 int newLength = alphaCount + 2*blankCount;
32 printf("newLength is %d\n", newLength);
33 int p1 = alphaCount + 1;
34 int p2 = newLength + 1;
35 while (p1>=0 && p2>p1)
36 {
37 if (str[p1] == ' ')
38 {
39 str[p2--] = '0';
40 str[p2--] = '2';
41 str[p2--] = '%';
42 }
43 else
44 {
45 str[p2--] = str[p1];
46 }
47 p1 --;
48 }
49 }
50
51 int main()
52 {
53 char str[] = "We are Happy!";
54 printf("Before: %s\n", str);
55 ReplaceBlank(str);
56 printf("After: %s\n", str);
57 }