zoukankan      html  css  js  c++  java
  • 把字符串中的空格替换为"%20"

            这个需要注意的是字符串的结尾最后一个字符为'',并不是空字符,复制时要一块复制,算法思想就是先计算出字符串中总的空格数,然后

    重新计算字符串的长度,由于"%20"为3个字符,比原来多2个,所以,字符串长度是原来字符串长度加上空格字符总数×2,就是新的字符串的长度。

    代码如下:

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    void  strReplace(char str[],int length)
      {
              if(str==NULL||length<0)
                 exit(-1);
               int blank=0;
               int nLength;
              for(int i=0;i<length;i++)
                 {
                     
                 if(str[i]==' ')
                    blank++;
                 }
                nLength=length+blank*2;
              for(int j=length;j>=0;j--)
                 {
                     if(str[j]!=' ')
                       {
                          str[nLength]=str[j];
                            nLength--; 
                       }
                      else
                       {
                           str[nLength--]='0';
                           str[nLength--]='2';
                           str[nLength--]='%';
                       }
                   
                         
                 }
                  
               
      }
     int main()
    {
         char str[13]="we are happy";
         int length=13;
         cout<<"before replace:  ";
         cout<<str<<endl;
         strReplace(str,13);
         cout<<"after replace:  ";
         cout<<str<<endl;
         return 0;
         
    }
    

     运行结果:

  • 相关阅读:
    ffmpeg full help
    docker 服务命令
    php 查看swoole版本
    vue/cli 的启动
    TP框架的使用,不需要阿帕奇
    mysql 的文件恢复
    mac下使用iterm实现自动登陆
    跨库怎样查询
    swoole和websocket的关系
    mac上mysql的安装和使用
  • 原文地址:https://www.cnblogs.com/xshang/p/3581168.html
Copyright © 2011-2022 走看看