c語言學習 字串部分小錯誤彙總

2021-10-08 18:53:23 字數 806 閱讀 8693

scanf(),gets(),fgets(),getchar()的區別以及應用場合

scanf()函式再輸入字串時,遇到「空格、回車換行、製表」會終止讀入

gets()函式讀取一整行,直到遇到換行符,並且不會儲存換行符

fgets()函式讀取一整行輸入,或者在大於某個值時停止讀入,會儲存第乙個換行符

getchar()函式可以讀取任何乙個字元。

在使用fgets()函式時,特別注意因為它限制讀入字元個數,所以讀入儲存的位置應是乙個已知大小的字元陣列,而不能是字元指標。

2. 指標之間的傳遞是值傳遞,例如在函式中利用指標接受陣列的位址,計算機內部是新建乙個指標同樣指向呼叫函式中的陣列的內容,所以利用此指標可以改變原陣列的內容,但是指標自增並不會使原函式中陣列的位址也同樣改變,因為陣列名位址和指標位址不是同乙個。

char

*test

(char*)

;int

main()

char

*test

(char

* newptr)

在上述程式中,因為指標是值傳遞,因此在test()函式中,計算機新生成乙個指標:newptr也指向原函式中ptr指標指向的內容:「dsjhfg";所以可以在test函式中修改字串的值。

但是指標是值傳遞,因此在test函式中修改了newptr的值是不會改變原函式中ptr指標的值(注意是指標的值,不是指標指向的值)。

而此時p指標接受的是newptr指標的值,也就是,原字串首位址加1的位置。

所以上述程式輸出: drjhjfg rjhjfg

C語言學習 字串

字串宣告 char 變數名 數量 示例 include intmain printf 輸出字串ch2 s n ch2 方法3 char ch3 省略字串長度,長度編譯器在編譯時會幫忙計算 printf 輸出字串ch3 s n ch3 方法4 char ch4 name 此時末尾不需要加上 0 大括號...

C 語言學習 字串

c 字串 在 c 語言中國,字串實際上是使用 null 字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greetin...

C語言學習 字串(10 19)

for i 0 str i 0 i 表示讀入乙個字串,直到遇到空白字元為止 當遇到空白字元時,空白字元之後的字元留在了 輸入緩衝區 中,下次遇到scanf 時自動被讀取 printf s str 表示輸出乙個字串,直到遇到 0 為止 gets str 以回車符 n 作為字串終止符,同時將 n 從輸入...