《C語言解惑》 2 7 別混淆字元陣列和字元

2021-09-23 15:15:13 字數 986 閱讀 5639

【例2.9】下面的程式正確嗎?

#include void main()

【解答】編譯能通過,但結果不正確。第1條輸出語句中的st代表字串的首位址,所以能輸出字串的內容。第2條語句的st[5]代表第6個元素y的位址,所以能正確輸出「y」。第3條輸出語句是錯誤的,因為%s是輸出字串,要求字串「you go home?」的首位址。正確的寫法是&st[5]。其實,可以簡單地使用如下語句

printf(&st[5]);

將這種方法用到程式中。將其改寫如下:

#include void main()

可以對應下面的輸出結果加深對字串的理解。

when you go home?

when you go home?

yyou go home?

you go home?

當定義字串

char c="abc";

時,其實是由c[0]='a',c[1]='b',c[2]='c',c[3]='0'這4個元素組成。為它分配的長度要增加一位結束符。因此,定義時不能使用

char c[3]="abc";

而要使用

char c[4]="abc";

或者使用

char c="abc";

【例2.10】在下面的程式中,輸入「you and we」,輸出是輸入的內容嗎?

#include void main ( )

【解答】不是的。輸出是「you」。scanf語句的讀入是以空格結束的,所以它只取第1個連續字串作為輸入。要想得到正確的結果,就要放棄scanf函式而改用其他函式。例如,使用gets函式。下面是乙個正確的程式。

#include void main ( )

執行時輸入「you and we」,就能保證輸出「you and we」。

易混淆陣列和字串api

split 將字串安裝指定字元切割,然後拼接成陣列。返回新陣列。如 var a jack,jetty,tom var arr a.split console.log arr jack jerry tom 陣列 join 將陣列安裝指定字元拼接為字串。var news arr.join console...

C語言 陣列(字元陣列)

軟體中,文字處理比數字處理更重要,而處理文字時需要用到字串,所以掌握字串的知識很重要。字串一定有 0 結尾,只有以 0 結尾的字元陣列才能稱為字串。0 是字串的標誌,也是字串結束的標誌。一 字串的定義 char arr 10 char brr 5 不是字串,沒有 0 char crr 5 最後乙個元...

C語言字元陣列和字串

用來存放字元的陣列稱為字元陣列,例如 char a 10 一維字元陣列 char b 5 10 二維字元陣列 char c 20 給部分陣列元素賦值 char d 對全體元素賦值時可以省去長度 字元陣列實際上是一系列字元的集合,也就是 字串 string 在c語言中,沒有專門的字串變數,沒有stri...