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


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM