zoukankan      html  css  js  c++  java
  • 替换空格:剑指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 }

    结果为:

  • 相关阅读:
    程序员修炼之道阅读笔记02
    第十五周课堂练习-查找最长单词链
    文件读写总结
    第十五周
    暑假总结1
    软件工程课程总结
    第十六周总结
    用户场景分析
    学期课后个人总结
    第十五周总结
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/13269079.html
Copyright © 2011-2022 走看看