C語言 輸入是一整行的字串

2021-08-27 09:56:32 字數 2426 閱讀 8951

輸入是一整行的字串的

c語法:

char buf[20]; 

gets(buf); 

c++語法:

如果用string buf;來儲存:

getline( cin , buf ); 

如果用char buf[ 255 ]; 來儲存: 

cin.getline( buf, 255 );

scanf("%s%s",str1,str2),在多個字串之間用乙個或多個空格分隔;

若使用gets函式,應為gets(str1); gets(str2); 字串之間用回車符作分隔。

通常情況下,接受短字元用scanf函式,接受長字元用gets函式。

而getchar函式每次只接受乙個字元,經常c=getchar()這樣來使用。

cin.getline的用法:

getline 是乙個函式,它可以接受使用者的輸入的字元,直到已達指定個數,或者使用者輸入了特定的字元。它的函式宣告形式(函式原型)如下:

istream& getline(char line, int size, char endchar = '\n');

不用管它的返回型別,來關心它的三個引數:

char line: 就是乙個字元陣列,使用者輸入的內容將存入在該陣列內。

int size : 最多接受幾個字元?使用者超過size的輸入都將不被接受。

char endchar :當使用者輸入endchar指定的字元時,自動結束。預設是回車符。

結合後兩個引數,getline可以方便地實現: 使用者最多輸入指定個數的字元,如果超過,則僅指定個數的前面字元有效,如果沒有超過,則使用者可以通過回車來結束輸入。

char name[4];

cin.getline(name,4,'\n');

由於 endchar 預設已經是 '\n',所以後面那行也可以寫成:

cin.getline(name,4);

c語言字串輸出

在採用字串方式後,字元陣列的輸入輸出將變得簡單方便。除了上述用字串賦初值的辦法外, 

還可用scanf函式和printf函式一次性輸入輸出乙個字元陣列中的字串,而不必使用迴圈語句逐個輸入輸出每個字元。

要輸出乙個字串需要在printf函式的格式描述串中使用轉換字串「%s」,表示輸出的是乙個字串。如:

char name="hello world";

printf("%s\n",name);

在printf語句中使用了轉換字串「%s」,因此輸出引數中只給出陣列名即可。同樣,要輸入乙個字串也要加轉換字串「%s」。如:

char name[15];

printf("請輸入姓名:\n");

scanf("%s",name);

printf("%s",name);

由於定義陣列name的長度為15,因此輸入的字串長度必須小於15,以留出1位元組用於存放字串結束標示'\0'。 

對乙個字元陣列,如果不作初始化賦值,則必須說明陣列長度。然而,scanf()語句在按下回車鍵前都將接收字元。 

按下回車鍵後,scanf()在字串末尾插入乙個空字元'\0'以標示字串結束。因此,如果鍵入25個字元後再按下回車鍵, 

儘管字串宣告為僅由15個字元構成,它仍將接收並儲存字元。因此,對字串使用scanf()時, 

必須注意輸入字串長度不能超過宣告字串時指定的大小。這是因為輸入多餘字元後, 

編譯器也不會發出任何錯誤提示或警告,這些字元甚至被接收並儲存在記憶體中,造成程式隱患。 

scanf()語句不允許在輸入中存在空白字元。例如,當用scanf()接收字串時,鍵入「liu de hua"後, 

只有「liu」被儲存在記憶體中,而空格字元後的其他剩餘字元將被丟棄。要克服這個問題,c語言中提供了gets()和puts()函式 

分別用於字串的輸入和輸出。

puts函式的格式為: 1071  969

puts (字元陣列名);

功能:把字元陣列中的字串輸出到顯示器。即在螢幕上顯示該字串。

gets函式的格式為:

gets (字元陣列名);

功能:從標準輸入鍵盤上讀入乙個完整的行(從標準輸入讀,一直讀到遇到換行符), 

把讀到的內容存入括號中指定的字元陣列裡。並用空字元'\0'取代行尾的換行符'\n'。gets()函式允許在字串中間包含空格。

C語言輸入字元和字串

字元 對三個函式的總結 getchar getche getch 函式緩衝區 標頭檔案回顯 適用平台 getchar 有stdio.h 有windows linux mac os 等所有平台 getche 無conio.h 有windows getch 無conio.h 無windows 使用者按下...

C語言輸入字元和字串

c語言有多個函式可以從鍵盤獲得使用者輸入,它們分別是 scanf 和 printf 類似,scanf 可以輸入多種型別的資料。getchar getche getch 這三個函式都用於輸入單個字元。gets 獲取一行資料,並作為字串處理。scanf 是最靈活 最複雜 最常用的輸入函式,我們講解字元輸...

c 把一整數轉換為字串

把一整數轉換為字串 itoa i,num,10 i 需要轉換成字串的數字 num 轉換後儲存字串的變數 10 轉換數字的基數 即進製 10就是說按10進製轉換數字。還可以是2,8,16等等你喜歡的進製型別 返回值 指向num這個字串的指標 程式例 include include int main v...