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

2021-08-24 18:13:39 字數 1142 閱讀 1989

(1)計算字串長度時關鍵是要注意辨認轉義字元;(2)乙個轉義字元總是以反斜槓開始,再加乙個其他字元組成。所以,遇到反斜槓時要特別注意!!!

如:「abc!x=/」,其長度為 7

(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'),'\x12'(1和2為兩個16進製制數,同上),這時,當用函式strlen來測試該字串的長度時,結果應該為7(而不是4或9)。所以,當遇到轉義字元'\0'時,還要看其後面是否還有數字,若有,則應將後面的數字(一至二位)與前面的'\0'相結合作為乙個字元計入整個字串的長度。若用printf(「abc\\\061xy」);輸出,則輸出結果為:abc\1xy

由圖中關鍵字高亮也可看出:

sizeof 是運算子(其運算值在編譯時就計算好了);

strlen() 是函式(其運算值要在執行時才能計算)。

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

1 計算字串長度時關鍵是要注意辨認轉義字元 2 乙個轉義字元總是以反斜槓開始,再加乙個其他字元組成。所以,遇到反斜槓時要特別注意!如 abc x 其長度為 7 1 字串 abc n 其中的 n 為轉義字元 換行符 計算字串長度時只能計作乙個字元,所以該字串的長度為4 而 不是5 2 字串 abc n...

C 語言之求字串長度

求字串長度,我們可以通過庫中自帶的strlen 函式,也可以通過字元陣列來進行計算,還可以通過字串指標來計算。下面的 便是通過字串指標來操作的。求字串長度 include include 求字串長度 int strlen self char string return length int main...

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

字串的結束標誌是 0 因此計算字串的長度的核心思想就是通過字元指標順序檢索每乙個字元,直到檢測到 0 為止,以下是實現該演算法的幾種方式。1.用while迴圈實現 define crt secure no warnings 1 include include intmystrlen char str...