C++輸入空格字符串的三種解決方法
一.gets和fgets
char * gets ( char * str ); char * fgets ( char * str, int num, FILE * stream );
1. gets 是從第?個(gè)字符開始讀取,?直讀取到 \n 停?,但是不會讀取 \n ,也就是讀取到的內(nèi)容中沒有包含 \n ,但是會在讀取到的內(nèi)容后?動(dòng)加上 \0 。
2. fgets 也是從第?個(gè)字符開始讀取,最多讀取 num-1 個(gè)字符,最后?個(gè)位置留給 \0 ,如果num 的?度是遠(yuǎn)?于輸?的字符串?度,就會?直讀取到 \n 停?,并且會讀取 \n ,將 \n 作為讀取到內(nèi)容的?部分,同時(shí)在讀取到的內(nèi)容后?動(dòng)加上 \0 。
#include <cstdio> //?案1 int main() 1 2 3 4{ char arr[10] = {0}; gets(arr); printf("%s\n", arr); return 0; } //替代?案-?法2 #include <cstdio> int main() { char arr[10] = {0}; fgets(arr, sizeof(arr), stdin); printf("%s\n", arr); return 0; }
上述兩個(gè)程序,同樣在運(yùn)?起來后,在控制臺窗?中輸?: abc def ,按回?,?案1和?案2中arr 數(shù)組的內(nèi)容中差異如下:
二. 還是利用scanf
當(dāng)然C語?中使? scanf 函數(shù)其實(shí)也能做到讀取帶有空格的字符串,只是不常??已。?式就是將 "%s" 改成 "%[^\n]s" ,其中在 % 和 s 之間加上了 [^\n] ,意思是?直讀取,直到遇到\n ,這樣即使遇到空格也就不會結(jié)束了。
這種?式讀取,不會將 \n 讀取進(jìn)來,但是在讀取到的字符串末尾加上 \0 。
#include <cstdio> int main() { char arr[10] = "xxxxxxxx"; scanf("%[^\n]s", arr); printf("%s\n", arr); return 0; }
三. getchar
使? getchar 逐個(gè)字符的讀取,也是可以讀取?個(gè)字符串的。
#include <cstdio> int main() { char arr[10] = { 0 }; int ch = 0; int i = 0; while ((ch = getchar()) != '\n') { arr[i++] = ch; } printf("%s\n", arr); return 0; }
到此這篇關(guān)于C++輸入空格字符串的三種解決方法的文章就介紹到這了,更多相關(guān)C++輸入空格字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)高校教室管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)高校教室管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C語言 數(shù)據(jù)結(jié)構(gòu)與算法之字符串詳解
這篇文章將帶大家深入了解C語言數(shù)據(jù)結(jié)構(gòu)與算法中的字符串,文中主要是介紹了字符串的定義、字符串的比較以及一些串的抽象數(shù)據(jù)類型,感興趣的可以學(xué)習(xí)一下2022-01-01C++實(shí)現(xiàn)動(dòng)態(tài)分配const對象實(shí)例
這篇文章主要介紹了C++實(shí)現(xiàn)動(dòng)態(tài)分配const對象實(shí)例,包括了const對象的創(chuàng)建、刪除及應(yīng)用實(shí)例,需要的朋友可以參考下2014-10-10Linux環(huán)境下段錯(cuò)誤的產(chǎn)生原因及調(diào)試方法小結(jié)
借此機(jī)會系統(tǒng)學(xué)習(xí)了一下,這里對Linux環(huán)境下的段錯(cuò)誤做個(gè)小結(jié),方便以后同類問題的排查與解決2011-11-11C語言數(shù)據(jù)結(jié)構(gòu) 棧的基礎(chǔ)操作
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu) 棧的基礎(chǔ)操作的相關(guān)資料,需要的朋友可以參考下2017-05-05