• 面试题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 }
  • 相关阅读:
    老贴纪念九(蓝色 白色 绿色(前四天))
    进入6月
    老贴纪念七!(敏感:二十年了,而青春从来没有离开过)
    一个关于inet_ntoa的奇怪问题
    一个通用的Makefile模板
    【记录】find+tar命令组合
    Linux SDIO WIFI驱动的编译
    编译静态库和动态库的Makefile文件
    分解成连续数字的和
    linux nc命令示例
  • 原文地址:https://www.cnblogs.com/cauchy007/p/4558846.html
Copyright © 2020-2023  润新知