c語言,字串,最後面為什麼會有燙字

2021-03-04 05:21:51 字數 2554 閱讀 2127

1樓:匿名使用者

因為你沒有給字串置結束符,所以,把記憶體中的隨機值按字元輸出來了puts(a)表示輸出內字串a。a是字串首地容址,puts從首地址開始輸出,直到遇到\0結束輸出

你在for()迴圈之後,加一句:

a[i]='\0';

這樣就好了。

當然,你要儲存26個字元,所以,字串定義陣列時,要比實際的儲存字元多一個,給結束符用。

char a[27], b[27];

2樓:it孤鶩

字串沒有結束標記

你可以定義一個

char a[27];

最後a[26]='\0'; 就可以去掉你碰到的錯誤

3樓:孤獨歌頌者

你輸出的是a地址後面一大串內容,有涉及到z後面的儲存空間

字元陣列應該用for迴圈輸出或者用

printf("%s",a);輸出

4樓:匿名使用者

沒有結束標誌

puts(a);前面加一行:

a[26] = '\0';

當然要把char a[26]改為char a[27]

5樓:匿名使用者

變數沒有初始化就用。當然,你要是不用vc就不會出現了。

c語言中字元陣列輸出「燙燙燙燙燙燙燙」,如何解決

6樓:墨汁諾

在字元陣列最後加上copy

bai '\0',作為字串結束標誌。

strcpy(studname[k],ntemp);

bai strcpy(studname[i],studname[k]);

strcpy(ntemp,studname[i]);

strcpy(ntemp,studname[k]);

strcpy(studname[k],studname[i]);

strcpy(studname[i],ntemp);

擴充套件資du料:zhi

如果在定義字元陣列時不進行初始dao化,則陣列中各元素的值是不可預料的。如果花括號中提供的初值個數(即字元個數)大於陣列長度,則出現語法錯誤。

如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元(即'\0')。如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。

7樓:未王艮

有燙燙燙燙燙燙燙

說明你的字元陣列其內容不明

一般需如下解決:擴大陣列範圍

或初始化陣列

8樓:匿名使用者

在字元陣列最後加上 '\0',作為字串結束標誌。

9樓:燒掉回憶

擴大陣列範圍

或初始化陣列

10樓:匿名使用者

出現「燙燙燙燙燙燙燙」一般是 沒有資料

c語言,求資料輸出中,為什麼會後面多出字元!!!

11樓:匿名使用者

b上沒有加結束符

導致輸出越界。

在printf("######");

前面 加一句 b[cont]= '\0';

這樣就可以了。

12樓:匿名使用者

請將源**複製上來 幫你除錯

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

13樓:匿名使用者

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

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

14樓:匿名使用者

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

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

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

15樓:匿名使用者

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

16樓:匿名使用者

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

17樓:匿名使用者

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

18樓:匿名使用者

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

為什麼c 中無法用cout輸出字串

用cout輸出字串是可以的。大前提是當前名空間需要是std。即 中使用了 using namespace std 或者單獨宣告使用cout,即 中有 using std cout 否則需要使用 std cout進行輸出。在c 中有兩種字串的概念。1 string 類物件字串。需要使用std名空間,或...

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

c語言中字元陣列與數值陣列的型別不同,由於型別不同,所以輸入專輸出時呼叫的函式屬有點差異。對於字元陣列,輸入時可以呼叫scanf函式以及gets函式,輸出時可以呼叫printf函式以及puts函式。對於數值陣列,輸入時可呼叫scanf函式,輸出時可呼叫printf函式 1 字元型 character...

c程式輸出字串變數時為什麼會出錯直接輸出

因為沒有加 include 對string過載輸出流不被支援。以下兩者任選一種方式解決 1.加上 include 2.把 按如下方式來改寫 include include include using namespace std void main 兩種方式都可以,隨便選一種。因為你定義字串變數的型別...