c語言中字串,為什麼最後要加個

2021-03-07 02:36:51 字數 3366 閱讀 9179

1樓:匿名使用者

'\0'一般放在字串的結束處,表示字串的結束,其是ascii值為0的字元的轉義。

在標頭檔案#include 中包含的一些字串處理函式等中,一般處理字串時,都是一'\0'作為字串的結束,如果乙個字串中沒有'\0'這個結束字元,那麼這些函式將不能確定字串的結束位置在哪兒,從而引起一些不必要的錯誤。

2樓:匿名使用者

\0'在c語言中代表著字串的結束

在你不輸入'\0'的時候 字串不知道已經讀完了 還有繼續向後讀 讀乙個位元組長度是?兩個位元組長度

就是燙 這是ascii值決定的 漢子是兩個位元組就不多說了 '\0'的ascii值為(0x)00有時候如果未定義可能會出現一堆燙知道出現預設的00(也就是'\0')才會停止。

3樓:匿名使用者

因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後乙個元素加上「\0",表示字串結束,這是一種字串的表達方式。

4樓:匿名使用者

表示字串結束,在輸出的時候輸出到這裡為止,你可以試一下在字串中間加入\0 再輸出,就只會輸出\0前面的內容。

5樓:匿名使用者

那個設計c語言編譯器的人強制規範這樣的

6樓:匿名使用者

字串結束符。 表示字串結束。 跟'\n'表示換行,差不多。

c語言中字串,為什麼最後要加個\0 ?

7樓:黯然失色

因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後乙個元素加上"\0",表示字串結束,這是一種字串的表達方式。

c語言中字串,為什麼最後要加個'\0' ?

8樓:手機使用者

因為c語言中沒有字串這種資料型別,只有char字元型別,在c語言中所謂的字串其實是char陣列,陣列最後乙個元素加上"\0",表示字串結束,這是一種字串的表達方式。

c語言中在字串的結尾加0還是'\0'?有區別嗎?

9樓:匿名使用者

有區別,在c中'\0'為轉義字元,為字串結束標誌。在我們輸入字串時,其實當輸入結束時,編譯器會自動加上'\0'。

10樓:匿名使用者

加'\0',是有區別,其中的'\0'為轉義字元,其ascii值為0,

而數字 0(字元型) 的ascii值為0+48=48 ,可以用printf("%d %d %d",'\0','0',0);

語句來檢視

11樓:匿名使用者

兩者bai是相同du的。

例:zhichar *str="abcd";

memset(str+3, 0, 1) ==> str="abc"

memset(str+3,'\0',1) ==> str="abc" 此二

者等價dao

但memset(str+3,'0',1) ==> str="abc0"

從另一專

個角度屬

(int)(0) = 0

(int)('\0') = 0

(int)('0') = 48

12樓:匿名使用者

一樣的,都是字串結束符。

13樓:匿名使用者

有,加'\0'後字元無消

c語言中字串為什麼要有`\0`呢?`\0`在字串中的作用是什麼啊?

14樓:踏雪一無痕

『\0`在字串中標誌著結尾

用來判斷這個字串已經結束

如果不新增'\0',系統就在記憶體中一直向後讀,直到讀到'\0'為止(這個情況就造成錯誤)

乙個語句結束了,就用分號;表示結束啊

15樓:匿名使用者

'\0'表示字串結束,乙個語句的結束是用乙個;號來表示的,如果是語句塊的話是用大括號來表示結束的。。

16樓:我是盼妹珊珊

\0在出入吸附石不會出現,輸出是也不會出現,\0是系統自動加的,表示乙個字串的結束,在記憶體中占有乙個字元的位置。乙個語句結束了用;表示

17樓:周鑫輝

有事沒事的,一般都是最好寫上去。

大多是都是用for(;;)或者while( )語氣的,看個喜愛羅

關於c語言字元陣列的賦值最後自動新增『\0』問題

18樓:

#include

void main()

;printf("%s\n",c);

c[0]='a'; // 僅對bai第一位元du素賦zhi值,它並不影響dao

其後面的版字元權

printf("%s\n",c);

c[1]='b';  // 同理

printf("%s\n",c);}

19樓:w天使de翅膀

可以正常讀出來的,\0只是乙個相當於識別符號的東西,用來判斷已經到達字串的末尾

20樓:匿名使用者

c[5]只有5個空間無法完全容納字串"hello",因為這個字串需要占用6個字元位置。

所謂自動加'\0'的問題是內:你寫在雙

容引號中的,編譯程式會認為是字串,會自動為你新增上乙個字串結尾符號0,而不是執行時新增的。

如果你用debug方式執行程式,除錯環境自動會把你開設的char a[5];進行初始化0的工作,這時你再將第1位初始化時,後面的0仍存在就好象字串結尾已經存在了。如果非debug執行則沒有這個初始化工作。

如果你用字元方式初始化應當寫:char c[6]=;

21樓:匿名使用者

char c[5] = ; 有兩個問題

(1)語法不對,應該是 char c[5]="hello"

(2)有錯誤, char c[5]="hello",字串終止符溢位了

2.  但是我如果定義char a[5];給前一回位賦初值,答

則第二到第五位會自動賦值'\0'

// 沒錯,但注意是陣列第1到第4項自動賦值為0但後面我又給第三位到第五位賦值了,這個陣列是不是就不能正常讀出了// 需要看你賦什麼值,如果是非零值、並且你把陣列a當字串使用,則結果無法預料(無法確定終止符);如果你把陣列a只是當陣列使用,則不會有讀取問題

22樓:阿炳仰

可以正常讀出 就是只能讀出 第一位

c語言中字串為什麼要有呢在字串中的

0 在字串中標誌著結尾 用來判斷這個字串已經結束 如果不新增 0 系統就在記憶體中一直向後讀,直到讀到 0 為止 這個情況就造成錯誤 乙個語句結束了,就用分號 表示結束啊 0 表示字串結束,乙個語句的結束是用乙個 號來表示的,如果是語句塊的話是用大括號來表示結束的。0在出入吸附石不會出現,輸出是也不...

c語言中字串相減是什麼意思,C語言中字串相減是什麼意思

從首字母開始,比較字元的大小,如果一個a可通用,一個b開頭,那麼a開頭的 就大,則相減結構為正 字串不能相減,但你可以用strcmp來做比較,其實該函式也是從字串的首地址開始比較字元的ascii碼 金色潛鳥 1 c語言中沒有 字串相減 運算。2 c語言中 有 單個字元 相減 運算。例如,把字串 12...

什麼叫數值型字串,C語言中,數字字串和數值型資料有什麼區別

數值型字串我們可以理解為 乙個string型的字串中 裝有int型的數值 這時 內候 string型的字串就叫做容 數值型字串。舉例 23 23 前者加了兩個引號因此是string型別的且裡面的值是int型的 所以是數值型字串 而後者直接就是int型的 應該就是型別為字串,內容是數值吧,如 1234...