C風格字串

漫步驚星發表於2017-12-05

Note:儘管C++支援C風格字串,但在C++程式中最好還是不要使用他們,這是因為C風格字串不僅使用起來不太方便,而且極易引發程式漏洞,是諸多安全問題的根本原因。


C標準庫String函式

strlen(p)                     //返回p的長度,空字元不計算在內

strcmp(p1, p2)             //比較p1和p2的相等性,相等返回0,p1>p2,返回一個正值,p1<p2,返回一個負值。

  stract(p1, p2)               //將p2附加到p1之後,返回p1

strcpy(p1, p2)              //將p2拷貝給p1,返回p1


傳入此類函式的指標必須指向以空字元作為結束的陣列


char ca[] = {'C', '+', '+'};//不以空字元結束

cout << strlen(ca) << endl;//嚴重錯誤:ca沒有一空字元結束(能編譯通過)。


以上語句能編譯通過,但是其輸出是未定義的,strlen函式將有可能沿著ca在記憶體中的位置不斷的向前尋找,知道遇到空字元才停下來

相關文章