C語言–字串長度的計算方法

來源:互聯網
上載者:User

提示:(1)計算字串長度時關鍵是要注意辨認逸出字元;(2)一個逸出字元總是以反斜線開始,再加一個其他字元組成。所以,遇到反斜線時要特別注意!!!

1、不帶逸出字元的字串

  如:“abc!x=/”,其長度為 7

 

2、帶逸出字元的字串

  (1) 字串“abc\n”:其中的'\n'為逸出字元(分行符號),計算字串長度時只能計作一個字元,所以該字串的長度為4(而不是5)

  (2) 字串“abc\n\\\'\"":其中有4個逸出字元:'\n'(分行符號)、'\\'(反斜線)、'\''(單引號)、'\"'(雙引號),所以該字串的長度為7(而不是11)。

  (3) 字串“abc\0xyz”:其中有一個逸出字元'\0',它是字串結束符,所以,當用函數strlen來測試該字串的長度時,結果應該為3(而不是7)。

  (4) 字串“abc\\0xy”:其中有一個逸出字元'\\'(反斜線),這樣,後面的字串“0xy”照樣計算,所以,該字串的長度為7(而不是將第二個反斜線與其後的0結合為一個逸出字元'\0',若那樣的話,第一個反斜線將無法處理,因為一個逸出字元總是由反斜線加其他字元組成的,單獨的一個反斜線不能作為任何合法的字元)。

  (5) 若將字串“abc\\0xy”改為“abc\\\0xy”:則其中有二個逸出字元'\\'(反斜線)和'\0'(字串結束符),這時,當用函數strlen來測試該字串的長度時,結果應該為4(而不是7)。

  (6) 若將字串“abc\\\0xy”改為“abc\\\061xy”:則其中有二個逸出字元'\\'(反斜線)和'\061'(ASCII碼值等於061的字元,也即數字字元'1'),這時,當用函數strlen來測試該字串的長度時,結果應該為7(而不是4或9)。所以,當遇到逸出字元'\0'時,還要看其後面是否還有數字,若有,則應將後面的數字(一至二位)與前面的'\0'相結合作為一個字元計入整個字串的長度。

    若用printf(“abc\\\061xy”);輸出,則輸出結果為:abc\1xy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.