首先預留儲存字串的空間,然後使用輸入函式來獲取這個字串。
1>gets()和puts()
gets()函式:
讀取到換行符輸入結束。
它讀取換行符之前(不包括換行符)的所有字元,在字元後新增空字元(\0),讀取換行符並丟棄。
兩種方式獲得輸入:
1>使用乙個位址把字串賦予name。
2>gets()的**使用return返回字串的位址,程式把這個位址分配給char型別的指標ptr。
#include
#define max 81
void main()
puts()函式:
puts(字串引數位址);
顯示字串自動新增乙個換行符;
遇到空字元就會停下來;
2>fgets()和fputs()
fgets()函式:
與gets()相比 多檢查儲存區是否能夠容納實際輸入的資料。
它需要第二個引數來說明最大讀入字元輸n,讀到換行符結束或者讀到n-1字元結束;
它會訪問換行符;
需要第三個引數說明讀哪乙個檔案。
#include
#define max 81
void main()
/*執行結果
hi,what's your name?
bob //輸入
bob?ah! bob
!*/
fputs()函式:
fputs(字串位址,stdout);
需要第二個引數來說明要寫的檔案,stdout代表輸出顯示
不自動新增換行符,
3>scanf()和printf()
scanf()函式:
scanf()函式與gets()函式主要的差別在於它們如何決定字串何時結束,scanf()基於獲取單詞 gets
scanf("%10s",&address); 會讀入10個字元或者遇到第乙個空白字元結束,最先滿足的那乙個結束。
printf()函式:
字串輸入輸出函式
while gets name null 可檢查檔案是否結尾 while ch getchar eof gets 讀取換行符並將其丟棄,fgets 把換行符存字串裡,但每次顯示字串會顯示換行符 不足之處 fgets 是為檔案i o而設計得,在處理鍵盤輸入時就不如gets 那麼方便。它需要第二個引數來...
字串輸入輸出函式
字串輸入首先要考慮的是儲存位置和儲存空間大小。例子 char name scanf s name 指標未初始化,可能指向記憶體中的任意地方,字串讀入的時候有可能覆蓋記憶體中的關鍵資料,造成程式或機器崩潰。char name 81 這種方式顯式宣告空間並進行初始化。scanf s str 函式讀入單個...
字串的輸入輸出
1.字串陣列 初始化 char s1 array 字元陣列 char s2 6 array 陣列長度 字串長度 1,因為字串末尾會自動添 0 printf s,c n s1,s2 2 2.字串指標 初始化 char sp pointer 字元指標 printf s,c,c n sp,sp,sp 2 ...