關於「c語言從鍵盤輸入字串到指標陣列」的問題

2021-08-11 20:36:11 字數 614 閱讀 8999

c語言中字串常量儲存在靜態資料區,並且有字串結束符,直到程式執行結束它才會被銷毀,所以在程式中我們把乙個字串常量賦值給乙個字元指標,如:

char *pchar = "hello world!";
其中,」hello world!」是乙個字串常量,pchar是乙個字元指標。該句相當於將字元』h』在靜態資料區中的位址賦給pchar。此時,字串常量」hello world!」只有乙份儲存在靜態資料區。

另外一種常見的型別是將乙個字串常量賦值給乙個字元陣列,而其餘上面的指標形式有本質上的區別,如下:

char str = "hello world!";
其中,」hello world!」是乙個字串常量,str是乙個字元陣列。此時,程式會將字串常量」hello world!」拷貝乙份到棧區(如果str是區域性變數),從此將於字串常量」hello world!」再無聯絡。

char* str = (char*)malloc(sizeof(char) * 100);

scanf("%s", str);

這樣我們輸入的字串就會儲存在str所指向的動態空間內。對指標陣列的賦值參考以上即可。

C語言基礎06 從鍵盤輸入資料

今天我要說的是scanf 輸入函式 scanf 是最靈活 最複雜 最常用的輸出函式,但它不能完全取代其他的函式。scanf 和printf 類似,scanf 可以輸入多種類似的資料,而getchar getche getch 這三個函式都用於輸入單個字元,gets 可以獲取一行資料,並作為字串處理。...

Linux鍵盤輸入時如何隱藏輸入的字串

今天遇到乙個小需求,執行某個應用程式時,需要驗證密碼,不能顯示輸入的內容,即不回顯。有人推薦使用 getpass 函式,通過man查閱發現該介面提示被淘汰,建議使用 termios。於是經過多方調研,決定使用getch 函式,並配合 termios使用,關鍵 如下 set disp mode 介面用...

C語言學習筆記 使用鍵盤輸入給字串賦值的幾種方式

在我們定義乙個字串變數的時候如需使用鍵盤輸入資料給字串賦值一般會用到三種方式,記錄一下三種方式的區別。如我們定義乙個字串 char name 10 10代表字串的長度 scanf char name 10 scanf s name printf 輸入的name是 s name 如果此時輸入的字元含有...