程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言:字符串替換空格:請實現一個函數,把字符串中的每個空格替換成“%20”。

C語言:字符串替換空格:請實現一個函數,把字符串中的每個空格替換成“%20”。

編輯:關於C
  從前往後:在原基礎上進行替換(當然前提是空間足夠),如果從前往後遇到空格就替換,必然會對原來的字符造成覆蓋,不可以實現。   因為把空格替換為”%20“,每次替換多2個字符,因此可以統計出字符串中空格的總個數,然後新數組大小為  “原數組大小 + 2*空格數 ”。從後往前處理:遇到非空格,直接搬到後面,遇到空格替換為”%20“. 直到待插入位置指針和原數組為指針重合位置。  
#include<stdio.h>
#include<string.h>
int main()
{
 char arr[] = "we are happy.";
 int i = 0;
 int j = 0;
 int len = 0;
 int count = 0;
 len = strlen(arr);
 for(i = 0;i < len;i++)
 {
  if(arr[i] == ' ')
  {
   count ++; 
  }  
 }
 i = len;
 j = 2 * count + len;
 while(i != j && i >= 0)
 {
  if(arr[i] == ' ')
  {
   arr[j--] = '0';
   arr[j--] = '2';
   arr[j--] = '%';
   i--;
  }
  else
  {
   arr[j] = arr[i];
   j--;
   i--; 
  }
 }
 len = strlen(arr);
 for(i = 0; i< len ;i++)
 {
  printf("%c",arr[i]);
 }
 printf("\n");
 return 0; 
}

 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved