這幾天的一次程式練習中用到了strcat()函式,但也想到了一些問題。
我們都知道strcat(str,ptr)是將字串ptr內容連線到字串str後,然後得到乙個組合後的字串str,比如
str字串內容為"123456\0",ptr字串為"abc\0",那麼strcat(str,ptr)後str內容為 "123456abc\0",輸出結果為
123456abc這樣看來函式作用是將ptr內容接到了str的終止符\0上,道理很簡單,那麼如果我將str字串內容
更改一下,讓str[1] = '\0',讓字串的第三位變成終止符,str內容變為"1\03456\0",那麼再strcat一次結果為何?
很簡單,輸出str結果為1abc,有人會問,那麼之前的其他的字元呢??事實上此時str內容為"1abc\06\0",但是
printf只會列印到\0結束,所以後面的6就被遺棄了,其實這也很簡單,如果乙個字串內的某個字元被換成了
終止符\0,那麼就當作字串到這結束就好,再進行其他操作。
可能說的不是很清楚,大家當個玩笑看看就好。
strcat 函式的實現
name xif coder xifan2010 yahoo.cn time 08.22.2012 function char my strcat char pstr 1,char pstr 2 char my strcat char pstr 1,char pstr 2 使指標pstr 1指向字串...
實現strcat函式
strcat函式是將兩個字串進行連線。define crt secure no warnings include include include includechar strcat char dest,const char src dest i 0 return dest int main str...
strcat函式的坑點
我們先看下面這樣一段 1 include 2 include 3 using namespace std 45 intmain 6咋一看,這段 的原意是將p2鏈結到p1的後面,p1為123abc。然後將str字元陣列向後移動兩個位置,將p1拷貝到從該位置開始之後的記憶體中。結果為xy123abc 然...