字元、字串輸入格式總結
一、
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個整數嘛)
注意:回車鍵也是一個字元,只是作業系統隱藏了。有時候我們需要先輸入一個整數,然後再輸入字元。這就需要先
二.
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一看,就會發現
四:
char ch[10];
gets(ch);
理解了上面的scanf(“%s”)這種格式之後,gets()就很容易理解了,gets()和scanf()不同的就是它是讀到換行為止的,而不是空格。
比如:我們輸入字串abcd,再輸入一個空格,接著再輸入efg我們用printf(“%s”,ch)一看就會知道輸出的是
abcd efg。說明空格也讀進去了。