1. 程式人生 > >字元、字串輸入格式總結

字元、字串輸入格式總結

一、

char  ch;

scanf(“%c”,&ch);

這是最基本的輸入一個字元的函式,注意到ch前面有個&,它表示取地址,為什麼要帶上取地址,很明顯嘛,就是你從鍵盤讀入一個字元放到ch的家裡面(也就是它的住處嘛),

請記住這個函式的返回值。他返回我們輸入的變數的個數。

比如:char ch1,ch2;

intd = scanf("%c%c",&ch1,&ch2);

這時候d的值就是2(因為輸入了2個字元嘛)

Intnum;

intd = scanf("%d",&num1);

這時候d的值就是1(因為輸入了1個整數嘛)

注意:回車鍵也是一個字元,只是作業系統隱藏了。有時候我們需要先輸入一個整數,然後再輸入字元。這就需要先

scanf(“%d\n”,&num); scanf(“%c”,&ch); 這樣我們輸入完整數num之後,就不會把我們敲的那一下回車讀到ch變數裡面。

二.

char ch;

ch = getchar()

這也是輸入一個字元的函式,與scanf不同的是,它返回的值是你輸入的那個字元。

比如:

char ch = getchar(); 你從鍵盤輸入一個字元a,這時候ch就是你輸入的a了。

三.

char ch[10];

scanf(“%s”,ch)

這裡大家總是記不住要不要帶上&符號,我講一下為什麼不要帶&符號,因為ch這是一個數組,大家學了指標與陣列這一節就知道如果ch是一個數組,那麼ch就表示ch[0]的地址

(也就是&ch[0]),程式要找ch這個字串,只需要找到ch這個字串的首地址就可以了。不信大家可以試一下面兩種方式

1.   char ch[10];  scanf("%s",&ch[0]);  printf("%s\n",ch);

2.   char ch[10];  scanf("%s",ch);  printf("%s\n",ch);

他們是一樣的,也就證明了ch就是&ch[0].

注意:

我們用scanf(“%s”,ch)這樣讀字串的時候,他是讀到你敲空格或者是換行為止。

比如:我們從鍵盤輸入abcde,然後輸入一個空格。再繼續輸入字串fghij 我們輸出那個ch一看,就會發現

ch的值是abcde,因為scanf”%s”)這種格式是讀到空格或換行為止的。也就是後面的不會讀到ch裡面。

四:

char ch[10];

gets(ch);

理解了上面的scanf(“%s”)這種格式之後,gets()就很容易理解了,gets()和scanf()不同的就是它是讀到換行為止的,而不是空格。

比如:我們輸入字串abcd,再輸入一個空格,接著再輸入efg我們用printf(“%s”,ch)一看就會知道輸出的是

abcd efg。說明空格也讀進去了。