• 替换空格:剑指offer05


     此题为简单题,较为好理解,主要是将'  '替换'%20',刚开始自己以为可以自己当读取到字符串为空时就可直接置换为‘%20’但发现结果是只能显示‘%20’的部分。错误结果如下:

     1 char* replaceSpace(char* s){
     2     int n=strlen(s);
     3     int i;
     4  //   char *p=(char *)calloc(3*(n+3),sizeof(char));
     5  //   int size=0;
     6     for(i=0;i<n;i++)
     7     {
     8         if(s[i]==' ')
     9         {
    10             s[i]='%20';
    11  //           p[size++]='%';
    12  //           p[size++]='2';
    13  //           p[size++]='0';
    14         }
    15 
    16 //        else
    17 //        {
    18 //            p[size++]=s[i];
    19 //        }
    20     }
    21     return s;
    22 }

    后来参考了别人的代码后发现其实字符数组好像只能存储一个字符。

     因此对其进行了修改。重新申请一个动态内存大小为3*(n+3).。

     1 char* replaceSpace(char* s){
     2     int n=strlen(s);
     3     int i;
     4     char *p=(char *)calloc(3*(n+3),sizeof(char));
     5     int size=0;
     6     for(i=0;i<n;i++)
     7     {
     8         if(s[i]==' ')
     9         {
    10  //           s[i]='%20';
    11             p[size++]='%';
    12             p[size++]='2';
    13             p[size++]='0';
    14         }
    15 
    16         else
    17         {
    18             p[size++]=s[i];
    19         }
    20     }
    21     return p;
    22 }

    结果为:

  • 相关阅读:
    那些离不开的 Chrome 扩展插件
    Spring Boot 实战 —— 入门
    Maven 学习笔记
    Linux lvm 分区知识笔记
    Linux 双向 SSH 免密登录
    CentOS Yum 源搭建
    Ubuntu 系统学习
    iOS 测试三方 KIF 的那些事
    Swift 网络请求数据与解析
    iOS Plist 文件的 增 删 改
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/13269079.html
Copyright © 2020-2023  润新知