把字符串中的空格替換為"%20"


        這個需要注意的是字符串的結尾最后一個字符為'\0',並不是空字符,復制時要一塊復制,算法思想就是先計算出字符串中總的空格數,然后

重新計算字符串的長度,由於"%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;
     
}

 運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM