scanf()函數(shù)在讀取字符時,識別到空格就會終止讀取,那么如何讀取帶空格的字符串呢?
一、gets()(gets_s())
從標準輸入(stdin)(指的是鍵盤輸入)讀取字符,并將它們作為 C 字符串存儲到 str 中,直到達到換行字符或文件末尾。
即gets()函數(shù)會一直讀取字符直到遇到換行符\n(回車)或文件末尾截至。
需要注意的是:在VS中gets()函數(shù)被替代為gets_s()。
int main()
{
char str[100] = "\0";
gets_s(str);
puts(str);
return 0;
}
?這里可以留一下gets_s()與fgets()的區(qū)別。
二、fgets()
?由上圖我們發(fā)現(xiàn),fgets()在輸入時會保留鍵盤中輸入的(\n)回車。于是在這里我測試了一下,結果如下:
?很明顯他輸出了兩個換行符,這明顯與我的預期不同,于是我發(fā)現(xiàn)puts()函數(shù)在輸出時也會輸出一個(\n)換行符,如果我把puts()換成printf(),那么就會只有一個fgets()的換行符了。
改用printf():
文章來源:http://www.zghlxwxcb.cn/news/detail-471859.html
三、scanf()
scanf("%[^\n]", str);
scanf可以利用上述形勢完成帶有空格的字符串的輸入。文章來源地址http://www.zghlxwxcb.cn/news/detail-471859.html
到了這里,關于如何讀取帶空格的字符串?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!