c語言字串知識總結

2021-08-17 05:28:42 字數 1180 閱讀 3964

由上面的例子可以知道111和222,222和333之間的換行符\n被丟棄,只有333後面的換行符\n被遺留在緩衝區,因為a和b按%s讀取內容時,自動丟棄了緩衝區最前面的換行符\n,然後第乙個getchar()讀取了緩衝區的第乙個字元:'\n',後面兩個getchar()則分別讀取了『a』、『b』,語句執行到這裡,其實緩衝區還遺留著c'\n',若想清除,可以使用語句while(getchar()!='\n');

而下面的**段則驗證了空字元『\0』就是數字0

再乙個,無論從終端顯示屏輸入數字、字母還是啥,都是預設的字元型,再由編譯器轉換為相應的資料型別存入相應的變數。

然後給字元陣列賦初值時,如果只賦部分,則剩餘的未賦值元素預設設為數值0,即空字元『\0』,此時該字元陣列相當於乙個字串;如果全部元素都賦值,字元陣列結尾沒有空字元。 若分別用字串列印函式列印它們,則第乙個列印陣列第乙個空字元之前的所有元素,第二個則順著相鄰記憶體一直往下列印,直到遇到第乙個空字元為止:

sizeof()計算的是系統為引數分配的空間大小,引數可以是陣列、變數,資料型別;而strlen()的引數可以是字串或字串指標,它的原理是計算指標所指的位址到第乙個結尾空字元『\0』的空間大小。所以當陣列(或字串)做函式引數時,自動退化為指標,在該函式內部使用sizeof()得到的是系統為該指標分配空間的大小,而strlen()則依然能計算出陣列大小:

當用連續的scanf()或getchar()連續讀取字元時,如果一旦開啟了讀取緩衝區「模式」,且緩衝區非空,後面的語句會自動執行,而不是執行一句等待換行符訊號再執行一句:

C語言字串總結

c語言中沒有設定字串變數,所以只能用字元陣列來儲存。1,它符合陣列的一切操作 1 字元陣列的定義 即陣列的定義 char c c i c c a c m c c a c c b c o c y 2 字元陣列的初始化 即陣列的初始化 char c 其形式同 int a 是一樣的。3 字元陣列的引用 即...

C語言字串總結

c語言字元陣列的初始化 1 字元陣列的定義與初始化 1 第一種方式 char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 注意 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為空字元 即 0 ...

C語言總結 字串

字串是用字元陣列儲存的,並且最後一位必須是 0 編譯器會把這個字元陣列看做是char 型別的指標。操作 char p p abc char ch ch abc 1 char str 8 abcdefg 會把這幾個字元複製到這個字元陣列中 他的儲存方式為 如果字串不夠7個就會把剩餘的單元填 0 如果超...