C語言如何接收通過鍵盤輸入的任意長度字串

2022-07-31 22:33:54 字數 528 閱讀 5898

有時候需要對使用者輸入的字串進行處理,由於事先不知道使用者會一次性輸入多長的字串,一般有三種處理方法:

1、根據估計使用者最多輸入字串長度進行申請空間。

2、使用getch、scanf(%c)等乙個字元乙個字元的接收處理。

3、使用

while(1)

scanf("%1000s",&str);

//對str字串進行處理

//在末尾

if(strlen(str)!=1000)//如果長度不為1000說明已經接收完,此時可以跳出迴圈

break; 

第一種方法的缺點是,使用者輸入量很有可能比程式設計師估計的要長。申請小了,會溢位,大了浪費。

第二種方法似乎可行,乙個個字元的接收處理,直到遇到回車符為止跳出,但效率不高,每次都需要向系統的輸入快取獲取資料需要消耗較多的時間。

第三種方法是對第二種方法的改進,一次最長獲取長度為1000的字串,如果使用者輸入超過1000,可採用迴圈接收,每次接收都儲存在str裡,沒有增加額外的儲存空間。

顯然,第三種方法是最優的。

學習記錄 input接收鍵盤輸入的值

input函式接收鍵盤的資料,利用print輸出接收的內容 name input 請輸入你的名字 print name name str input 請輸入你的名字 定義接收的內容型別為字串 print name number int input 請輸入整數 定義接收的內容型別為整型 print n...

如何通過鍵盤輸入整型數給列舉變數賦值

在程式設計中,有時會用到由若干個有限資料元素組成的集合,如一周內的星期一到星期日七個資料元素組成的集合,由三種顏色紅 黃 綠組成的集合,乙個工作班組內十個職工組成的集合等等,程式中某個變數取值僅限於集合中的元素。此時,可將這些資料集合定義為列舉型別。因此,列舉型別是某類資料可能取值的集合,如人的性別...

C 從鍵盤輸入的方法

c 最基本的常用的輸入方式 包含標頭檔案 include 注意 不能接受空格和回車 int main 1 scanf 函式 包含標頭檔案 include scanf函式一般格式為scanf s st 但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串都是...