面试题4:替换空格

 1 bool Replace(char *String, int length)
 2 {
 3     int index;
 4     int charNum;
 5     int blankNum;
 6     char *workPtr;
 7     
 8     if(NULL == String)
 9     {
10         return false;
11     }
12 
13     charNum = 0;
14     blankNum = 0;
15     workPtr = String;
16     while((*workPtr) != '')
17     {
18         if((*workPtr++) == ' ')
19         {
20             blankNum++;
21         }
22         charNum++;
23     }
24 
25     if(length < (charNum + 2*blankNum))
26     {
27         return false;
28     }
29 
30     for(index = charNum; index >= 0; index--)
31     {
32         if(*workPtr-- != ' ')
33         {
34             *(String + index + 2*blankNum) = *(String + index);
35         }
36         else
37         {
38             *(String + index + 2*blankNum) = '0';
39             *(String + index + 2*blankNum - 1) = '2';
40             *(String + index + 2*blankNum - 2) = '%';
41             blankNum--;
42         }
43     }
44     return true;
45 }

相关题目:

 1 bool arrayMerge(int *arrayA, int arrayALenth, int *arrayB, int arrayBLenth)
 2 {
 3     int mergeLenth = arrayALenth + arrayBLenth;
 4 
 5     if(NULL == arrayA)
 6     {
 7         return false;
 8     }
 9     if(NULL == arrayB)
10     {
11         return true;
12     }
13 
14     arrayALenth--;
15     arrayBLenth--;
16     mergeLenth--;
17 
18     while((arrayALenth >= 0) &&(arrayBLenth >= 0))
19     {
20         if(arrayA[arrayALenth] > arrayB[arrayBLenth])
21         {
22             arrayA[mergeLenth--] = arrayA[arrayALenth--];
23         }
24         else if(arrayA[arrayALenth] < arrayB[arrayBLenth])
25         {
26             arrayA[mergeLenth--] = arrayB[arrayBLenth--];
27         }
28         else
29         {
30             arrayA[mergeLenth--] = arrayB[arrayBLenth--];
31             arrayA[mergeLenth--] = arrayA[arrayALenth--];
32         }
33     }
34 
35     if(arrayALenth < 0)
36     {
37         while(arrayBLenth >= 0)
38         {
39             arrayA[mergeLenth--] = arrayB[arrayBLenth--];
40         }
41     }
42     else
43     {
44         while(arrayALenth >= 0)
45         {
46             arrayA[mergeLenth--] = arrayB[arrayALenth--];
47         }
48     }
49 
50     return true;
51 }
原文地址:https://www.cnblogs.com/cauchy007/p/4558846.html