一道字串面試題 很少有人可以快速準確做出來

2021-05-24 11:47:08 字數 690 閱讀 6086

今天在

c++論壇上看到乙個關於字串的面試題,反映很強烈,跟帖很多。所以把這道題整理出來,希望對大家以後有所幫助,

具體見鏈結。

題目:

編寫如下形式的字串處理函式,要求將s1指向的字串倒向複製給s2,如*s1 = "hello",則使 *s2 = "olleh"。

要求: 1:

不能使用除s1,和s2以外的其餘任何變數。

2:不能使用庫函式

函式名:

void 

reverse

_str( const char* s1 ,char* s2);

分析:由於這道題的要求是不能使用其他的變數和庫函式,所以要把乙個字串翻轉,沒法用堆疊和自己寫的相似函式。想到,遞迴可以得到堆疊的效果。所以遞迴比較好想到。

遞迴例子1:

這個遞迴構造的很有技巧:在str1遞迴到結束字元'/0'時,

str2 = '/0';

語句把str2全部置空,為空字串。

在遞迴回朔時,通過

while(*str2 !='/0')

,找到每次,隊規的

str2的結束為止,加入str1的值。完成翻轉工作

非遞迴例子1

這個例子,同樣很有技巧,並且也容易懂。就是第乙個

while迴圈,找到str1的結束為止,在從結尾的為止,遍歷到開始為止。達到翻轉效果。

一道字串複製的面試題目

很多技術筆試都考字串複製函式的編寫 不能用那個庫函式 有人說說這個函式的考點在 和編寫的時候要注意的問題嗎?最好能有編寫嚴謹的例程。函式宣告 char strcpy char strdest,const char strsrc 目前為止,我總結出 1,考察strdest和strsrc非空 2,考察s...

一道字串複製的面試題目

很多技術筆試都考字串複製函式的編寫 不能用那個庫函式 有人說說這個函式的考點在 和編寫的時候要注意的問題嗎?最好能有編寫嚴謹的例程。函式宣告 char strcpy char strdest,const char strsrc 目前為止,我總結出 1,考察strdest和strsrc非空 2,考察s...

Java中字串比較的一道面試題

題目 public class test 輸出結果 true false false false 解析 直接把上面 進行反編譯一下就知道其中的原理了。上面可以進行如下理解 string a hello string b hello string tmp string.valueof a string...