在C語言中,可以使用「scanf(「格式控製字串」,變數記憶體位址)」語句輸入字串。 scanf()函數的第一個參數是格式字串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的資訊並儲存於可變參數列表中對應的指標所指位置。
本教學操作環境:windows7系統、C 17版本、Dell G3電腦。
scanf函數的一般形式
scanf函數是標準函式庫函數,它的函數原型在頭檔「stdio.h」中。與printf函數相同,C語言也允許在使用scanf函數之前不必包含stdio.h檔。 scanf函數的一般形式為:
scanf(“格式控制字符串”, 地址表列);
其中,格式控製字串的作用與printf函數相同,但不能顯示非格式字串,也就是不能顯示提示字串。地址表列中給出各變數的位址。位址是由位址運算子“&”後面跟著變數名稱組成的。
例如:&a、&b分別表示變數a和變數b的位址。
這個位址就是編譯系統在記憶體中分配給a、b變數的位址。在C語言中,使用了地址這個概念,這是與其它語言不同的。應該把變數的值和變數的位址這兩個不同的概念區分開來。變數的位址是C編譯系統分配的,使用者不必關心具體的位址是多少。
變數的位址與變數值的關係
在賦值運算式中將變數賦值,如:
a=567;
則,a為變數名,567是變數的值,&a是變數a的位址。
但在賦值號左邊是變數名,不能寫地址,而scanf函數本質上也是給變數賦值,但要求寫變數的位址,如&a。這兩者在形式上是不同的。 &是一個取地址運算符,&a是一個表達式,其功能是求變數的位址。
#include <stdio.h> int main(void){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); return 0; }
在本例中,由於scanf函數本身無法顯示提示串,故先用printf語句在螢幕上輸出提示,請使用者輸入a、b、c的值。執行scanf語句,等待使用者輸入。在scanf語句的格式字串中由於沒有非格式字元在「%d%d%d」之間作輸入時的間隔,因此在輸入時要用一個以上的空格或回車鍵作為每兩個輸入數之間的間隔。如:
7 8 9
或
7
8
9
#推薦教學:《C#》
以上是c語言如何用scanf輸入字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!