字串和字串陣列和 0

2021-07-30 23:58:38 字數 703 閱讀 4825

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

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

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

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

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

首先要區分,字元,字元陣列,字串的區別。

字串預設的最後會有』\0』

char k = 『a』; //定義的乙個字元變數,並賦值為』a』字元

char a[10]; //定義乙個size為10的字元陣列,未初始化

char b[10] = ; //定義字元陣列,並用一組字元初始化,此時後面不會自動加上』\0』

char c[10] = ; //定義字元陣列,並用「字串」初始化(雙引號內部的是字串),字串後面會自動加上』\0』

此外:

對於char a[10];

gets(a);

scanf(「%s」, a);這兩種方法為a的元素賦值,預設的最後會有』\0』. 這兩個函式都人為輸入的是字串

for(int i = 0; i < num ; i ++)

scanf(「%c」, &a[i]);//這種方法,是每次讀入乙個字元。這時不會自動在後面加上』\0』

只有字串陣列後才需要跟\0,不是字串陣列不用加\0

字串和字串陣列

字串陣列 include int main int argc,const char ar printf name1 s n name1 name1 zhangsan 部分初始化中,沒有被初始化的元素預設是0,0 對應的ascii值是 0 char name2 9 printf name2 s n n...

字元陣列和字串陣列 0 問題

字元陣列 include include using namespace std int main int argc,char const ar 單字元儲存則不會有 0 cout sizeof x sizeof y strlen x strlen y zl laptop 2abl2n6v mnt d...

字串和字元陣列

void test1 函式test1中,指標str1所指向的字串有11個元素。一定要注意字串是以 0 為結尾的,而strcpy拷貝了整個字串包括 0 所以存在下標越界的問題。void test2 函式test2中,字元陣列str1包含10個元素。陣列str1並不是以 0 結束,所以不能作為字串使用。...