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

時間 2021-08-30 09:45:20

1樓:來素花資嫣

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

2樓:襲英朗賽軍

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

在你不輸入'\0'的時候

字串不知道已經讀完了

還有繼續向後讀

讀乙個位元組長度是?兩個位元組長度

就是燙這是ascii值決定的

漢子是兩個位元組就不多說了

'\0'的ascii值為(0x)00有時候如果未定義可能會出現一堆燙知道出現預設的00(也就是'\0')才會停止。

3樓:鞠健柏板叡

表示字串結束,在輸出的時候輸出到這裡為止,你可以試一下在字串中間加入\0

再輸出,就只會輸出\0前面的內容。

4樓:譚合英蟻申

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

在標頭檔案#include

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

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

5樓:手機使用者

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

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

6樓:匿名使用者

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

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

7樓:匿名使用者

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

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

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

8樓:匿名使用者

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

9樓:匿名使用者

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

10樓:匿名使用者

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

11樓:匿名使用者

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

c語言,字元陣列中最後乙個字必須為『\0』,為什麼錯?

12樓:八哥說科技

c語言中字元陣列並沒有規定最後乙個字元為'\0',甚至可以不包含'\0',新增'\0'作為結束標誌是針對於c語言對字串的處理而言的,因此,字元陣列中最後乙個字必須為『\0』是錯誤的。

c語言中沒有字串型別,字串是存放在字元型陣列中的。在c語言中,是將字串作為字元陣列來處理的。為了測定字串的實際長度,c語言規定了乙個「字串結束標誌」,以字元'\0'作為結束標誌 。

例如:char a[8]=;把8個字元依次分別賦給c[0]~c[7]這8個元素。這樣的字元陣列長度為8,並沒有在最後新增'\0'符號,但其初始化是完全正確的。

13樓:英雄no無敵

不是字元陣列中最後乙個字元必須為'\0',如果字元陣列中存放的是乙個字串,則最後乙個字元應當'\0','\0'是結束符號,這樣當輸出這個字串時,只須輸入陣列名就可以,輸出函式會自動輸出陣列中的字元,直到遇到'\0'為止,否則你就要利用迴圈自己將字元乙個乙個的輸出,而且還要判斷該字元是不是所需要的字元,明白了麼?

14樓:

'\0'是為了關閉字串,如果不關閉,那麼就要爆掉!

所以開陣列時要開大!

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

15樓:

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

16樓:w天使de翅膀

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

17樓:匿名使用者

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

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

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

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

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

18樓:匿名使用者

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

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

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

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

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

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

19樓:阿炳仰

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

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

20樓:踏雪一無痕

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

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

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

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

21樓:匿名使用者

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

22樓:我是盼妹珊珊

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

23樓:周鑫輝

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

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

c語言中字串連線怎麼解決,C語言中字串連線怎麼解決??

大野瘦子 include char a 10 123 char b 10 abc char c 20 strcpy c,a 把串a複製到有足夠空間的c中strcat c,b 把b連線到c的串尾需要注意的事項 c的長度一定要能夠容納要轉換的數字的長度,比如下面的例子,c的長度至少為8 1234567 ...

C語言如何返回字串,C語言中函式如何返回字串?

1 c語言中,字串不是一種基本型別,其本質是字元陣列,因此直接返回字串是不行的。因為c語言不允許例如 char 10 fun 這樣的函式定義方式。但是可以返回字元指標。返回一個動態分配的記憶體地址。2 例如 char c char getinput int length length 為要輸入字串的...

c語言怎麼返回字串陣列,C語言中怎麼查詢字串陣列中的某個字元?

風若遠去何人留 c語言返回值不支援返回陣列,不過可以通過返回指標型別,用以替代陣列。在c語言中,陣列大多數時候是可以用指標替代的。不過需要注意的是,不能夠返回在函式內部定義的區域性變數陣列,因為一旦函式退出,區域性變數就會被釋放,導致陣列指標無效。可以返回以下幾種 1 全域性變數,或者全域性變數空間...