C語言當字串長度改變後,需要手動設定0符號

2021-04-18 22:25:24 字數 2103 閱讀 4739

1樓:飝快de時間

字串都復是以\0結尾的,\0是結束符。像

制char s="hello"其實bai是6個位元組,結尾du自動加\0,這樣像printf之類的才能zhi識別。dao連線字元用的是strcat函式,是自動加上\0的。如果一定要手動改,則需要自己加\0。

2樓:匿名使用者

用庫函式就好了。雖然逃不過c語言本身的限制(c語言沒有真正的「字串

型別」,通專常使用的字串只是屬由一串字元組成的陣列而已;陣列作為引數的時候一定會退化成指標,函式無法用合法手段獲知作為引數的陣列的長度),但能做到的輔助工作庫函式還是都會做的……

c語言中算字串的長度的時候,什麼時候將\0加上什麼時候不加啊???

3樓:栁児

字串的長度是不包括'\0'的

常見需要計算'\0'的情況是,以字元陣列初始化一個字串的時候,分配記憶體空間的情況。

char str="123456";

這時候陣列str的大小需要計算'\0',也就是str有7個元素

4樓:匿名使用者

標準庫的函式是不算結束符的,他們認為遇到結束符字串就結束了,也就是算長度是從第一個字元到第一個結束符之間的字元個數

5樓:匿名使用者

直接計算:

char a[2000];

int n;

gets(a);

n=strlen(a)//前面加上#include "string.h"

另一種是用迴圈計算:

for(int i=0,n=0;a[i]!='\0';i++)//直到結束標誌,

n++;

c語言程式設計,字串的迴圈語句中,什麼時候需要加字串結束符號'\0'

6樓:鬥帝之上魂鬥羅

針對字串,一個char一個char的遍歷的時候,用ch=str[i],ch!='\0'來判斷是否已經遍歷完成

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

7樓:匿名使用者

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

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

8樓:匿名使用者

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

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

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

9樓:匿名使用者

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

10樓:匿名使用者

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

11樓:匿名使用者

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

12樓:匿名使用者

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

c語言字串長度算不算\0?謝謝。

13樓:聽不清啊

例如,「abcd」的字串長度為4,但是儲存它的字元陣列元素個數,應該》=5。

即至少是char s[5];

14樓:喵不語

在定義時要多留一個\0符的位置,用strlen時不算

15樓:匿名使用者

使用strlen函式是不計算'\0'的,他作為strlen函式停止的標識

c語言字串長度如何數,C語言字串長度如何數?

1 首先開啟vs2014,新建一個專案。2 然後我們根據圖示 新建一個main函式。3 然後我們根據圖示 新增標頭檔案。4 然後我們根據圖示 新增main函式。5 然後我們根據圖示 定義int變數len。6 然後我們根據圖示 定義char型別變數str。7 然後我們根據圖示 使用scanf給str賦...

c語言如何求字串長度,c語言 計算字串長度

你的 出現問題的原因是scanf s a a是一個char型別的變數,系統為它分配了一個位元組的記憶體空間,但是你卻輸入了一個字串到以a的地址為首地址的一段連續的記憶體空間裡,這樣就出現了越界錯誤.但是printf函式並不檢查越界錯誤,它會按正常的方法執行,然後程式統計出長度,列印出來結果.但是返回...

c語言字串常量的問題,C語言字串常量的一個問題。

字串bai遇到 0表示結束 第一個字du符串就相zhi當於dao abc123 那版麼長度為6 第二個字串就相當於 abc 那麼長度為3但是實際操作權發現並非如此,如下程式 include memcpy c1,abc123 01de n 0x20 printf s n c1 char c2 0x20...