題目描述
請實現乙個函式,把字串 s 中的每個空格替換成"%20"。
示例 1:
解法1
該題考查字串的不可變性。需要重新申請乙個動態儲存空間,再進行更改。
//就是考乙個string的不可變性
char
*replacespace
(char
* s)
else newstring[j++
]= s[i];}
return newstring;
}
tips:
①strlen()函式可以得到字串的長度,這個長度不包括結束符\0。
②注意需要雙指標,因為乙個字元變三個字元,兩個陣列中指標不同步。如果從後往前遍歷,則新陣列中的指標可用newstringsize代替,節省乙個變數空間。
面試題 替換空格
基本思路 先遍歷一遍字串統計字串中空格的個數並計算出替換之後的字串的總長度,每替換乙個空格,長度增加2,因此替換後字串的長度對於原來的長度加上空格個數的2倍。如果從頭到尾掃瞄字串,遇到空格就做替換,必須每次都把空格後面所有的字元都向後移動兩個位元組,這樣處理的時間複雜度為o n 效率比較低。我們還有...
面試題 替換空格
一 2 在網路程式設計中,如果url引數中含有特殊字元,如空格 等,則可能導致伺服器端無法獲取正確的引數值。我們可以將這些特殊符號替換成伺服器可以識別的字元。可以在 後面跟上ascii碼的兩位十六進製制表示。空格的ascii碼為32.3 思路 1 把第乙個指標指向字串的末尾,把第二個指標指向替換後字...
面試題 替換空格
如果面試的時候,你只寫出了這種演算法,那你大概率就涼了 void replaceblank string s else s ans cout ans 我們先遍歷一遍字元,統計裡邊的空格的數量,由此可以計算出替換之後字元的長度 我們準備兩個指標,然後乙個指向替換之後的末尾位置,乙個指向為替換末尾位置 ...