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

2021-03-03 20:50:50 字數 3197 閱讀 2054

1樓:手機使用者

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

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

2樓:匿名使用者

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

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

3樓:匿名使用者

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

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

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

4樓:匿名使用者

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

8樓:匿名使用者

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

9樓:匿名使用者

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

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

語句來檢視

10樓:匿名使用者

兩者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

11樓:匿名使用者

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

12樓:匿名使用者

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

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

13樓:踏雪一無痕

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

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

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

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

14樓:匿名使用者

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

15樓:我是盼妹珊珊

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

16樓:周鑫輝

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

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

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

17樓:

#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);}

18樓:w天使de翅膀

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

19樓:匿名使用者

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

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

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

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

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

20樓:匿名使用者

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

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

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

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

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

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

21樓:阿炳仰

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

c語言中字串和陣列的區別,C語言中字串和陣列的區別

這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...

C語言中什麼是字串,C語言中如何定義字串?

加了 符號的字元,例如 c 3 在c語言中,由零個或多個字元組成且通過雙引號括起來的有限序列就叫字串.例如 hello world 我愛中國 a 123456 等等.另外字串在記憶體中是由字元型陣列來儲存的.且在儲存的時候多加 0 表示字串已經結束.例如 char string 12 hello w...

c語言中用switch函式轉換字串資料怎麼用

1 switch函式只能對整數型別的變數進行列舉,而字串型別不屬於整型變數。因此,必須對字串進行轉化。根據不同的字串比較結果,執行不同的操作。2 例程 假如有這幾個固定的字串 string1 string2 stringn 可以做這種變換 char str 100 假設已經賦值了 int i 0 c...