• 剑指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 = 
  • 相关阅读:
    WDM驱动加载方式理解
    应用程序与设备对象交换数据的三种方法
    IRP完成例程返回值理解
    关于IoCallDriver使用的疑惑
    Ring0打开其他设备对象三种方式整理
    DPC和ISR的理解
    Windows驱动开发技术详解HelloWDM例子win7下无法安装
    wdk中ramdisk代码解读
    内核编程键盘过滤几种方法思路整理
    IOAPIC重定位中断处理函数思路整理
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4724084.html
Copyright © 2020-2023  润新知