zoukankan      html  css  js  c++  java
  • 剑指offer 04_替换字符串中的空格

     1 #include <stdio.h>
     2 
     3 void ReplaceBlank(char string[],int length){
     4         if(string == NULL || length == 0){
     5                 return;
     6         }
     7 
     8         int originalLength = 0;//
     9         int blankCount = 0;
    10 
    11         while(string[originalLength] != ''){
    12                 if(string[originalLength] == ' '){
    13                         ++blankCount;
    14                 }
    15                 ++originalLength;
    16         }
    17 
    18         int newLength = originalLength + blankCount * 2;
    19 
    20         if(newLength > length){//not enough space
    21                 return;
    22         }
    23 
    24         int indexFirst = originalLength;
    25         int indexSecond = newLength;
    26         while(indexFirst>=0 && indexSecond>indexFirst){
    27                 if(string[indexFirst] == ' '){
    28                         string[indexSecond--] = '0';
    29                         string[indexSecond--] = '2';
    30                         string[indexSecond--] = '%';
    31                 }else{
    32                         string[indexSecond--] = string[indexFirst];
    33                 }
    34                 --indexFirst;
    35         }
    36 }
    37 
    38 
    39 int main(){
    40         char str[50] = "We are happy.";
    41         printf("str = %s
    ",str);
    42 
    43         ReplaceBlank(str,50);
    44         printf("str = %s
    
    ",str);
    45 
    46 
    47         char str1[50] = "Wearehappy.";
    48         printf("str1 = %s
    ",str1);
    49 
    50         ReplaceBlank(str1,50);
    51         printf("str1 = %s
    
    ",str1);
    52 
    53 
    54         char str2[50] = "   We are happy.";
    55         printf("str2 = %s
    ",str2);
    56 
    57         ReplaceBlank(str2,50);
    58         printf("str2 = %s
    
    ",str2);
    59 
    60 
    61         char str3[50] = "";
    62         printf("str3 = %s
    ",str3);
    63 
    64         ReplaceBlank(str3,50);
    65         printf("str3 = %s
    
    ",str3);
    66 
    67 
    68         return 0;
    69 }

    结果

    str = We are happy.
    str = We%20are%20happy.
    
    str1 = Wearehappy.
    str1 = Wearehappy.
    
    str2 =    We are happy.
    str2 = %20%20%20We%20are%20happy.
    
    str3 = 
    str3 = 
  • 相关阅读:
    Python异常处理
    Python序列化中json模块和pickle模块
    Python常用模块random/time/sys/os模块
    软件测试--读书笔记
    团队作业——系统设计和任务分配
    结对项目之需求分析与原型设计
    生成小学计算题(升级版)
    生成小学计算题
    软件工程基础
    第一个微信小项目
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4724084.html
Copyright © 2011-2022 走看看