C語言中字符串結束符


C語言中字符串結束符'\0'

'\0'就是8位的00000000,為字符NULL,因為字符類型中並沒有對應的這個字符,所以這么寫。'\0'就是字符串結束標志。

1. 字符串變量str[]

  • 在C語言中沒有專門的字符串變量,通常用一個字符數組來存放一個字符串。字符串總是以'\0'作為串的結束符。因此當把一個字符串存入一個數組時,也把結束符 '\0'存入數組,並以此作為該字符串是否結束的標志。有了'\0'標志后,就不必再用字符數組的長度來判斷字符串的長度了。

      參考:C 字符串常量和字符串變量定義和區別

  • 把一個字符串賦值給數組:u8 str1[]={"cxjr.21ic.org"};
    實際上數組str1在內存中的實際存放情況為:
    c x j r . 2 1 i c . o r g '\0'
    這后面的'\0'是由C編譯系統自動加上的。所以在用字符串賦初值時一般無須指定數組的長度, 而由系統自行處理。

2. 定義字符數組

三種方式:

u8 str1[]={"cxjr.21ic.org"}; //字符串賦值
u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g','\0'}; //人工添加
u8 str1[14]={'c','x','j','r','.','2','1','i','c','.','o','r','g'}; //故意給數組預留一個空位

注意:

  1. 當數組長度不夠。假設我們指定了數組長度,如:u8 str1[13]={"cxjr.21ic.org"};
    由於字符組str1的長度為13,所以后面的信息會丟失,即'\0'丟失。

  2. 如果在給數組賦值時,把每個字符單獨用引號括起來。也會丟失'\0'。如:

u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g'};

參考:C語言中字符串結束符'\0'


免責聲明!

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



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