void test1()
//函式test1中,指標str1所指向的字串有11個元素。一定要注意字串是以'\0'為結尾的,而strcpy拷貝了整個字串包括'\0'。所以存在下標越界的問題。
void test2()
//函式test2中,字元陣列str1包含10個元素。陣列str1並不是以'\0'結束,所以不能作為字串使用。而strcpy函式是對字串的操作,不能把乙個不是字串的字元陣列傳遞給strcpy函式,因為源字串的結束符'\0'是strcpy函式來判斷何時結束拷貝的標識,當把str1傳入後,不能結束拷貝任務。
void test3(char *str1)
//函式test3中,用strlen獲得了str1的長度,但是這個長度並不包括'\0'。所以這個長度是實際長度減1的值。所以在str3中應該把strlen(str1)<=0;改為strlen(str1)<10。這樣才能完成拷貝,且保證後面的拷貝不會導致陣列越界。 字串和字串陣列
字串陣列 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的串為空串,記作 字串中任意個連續的字元組成的子串行稱為該串的子串,相應地,包含子串的串稱為主串,子串的第乙個字元在主串的序號成為子串在主串的位置。字串的比較 當下列條件之一成立時,稱x ...
字串和字元陣列
字串是 號賦值的 例 char a hello 長度為6 最後加了乙個 0 或char a 6 hello 字串會自動的在最後加乙個 0 的結束符,字元陣列是乙個乙個的賦值 例 char a 5 長度為5 不會自動的加 0 s它要求引數是乙個指標!即 要求 char 型別 s 字串的格式輸出,它是乙...