欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++輸入空格字符串的三種解決方法

 更新時(shí)間:2025年04月01日 11:29:44   作者:style-h  
字符串一直是一個(gè)重點(diǎn)加難點(diǎn),很多筆試面試都會(huì)涉及,帶空格的字符串更是十分常見(jiàn),現(xiàn)在對(duì)字符串的輸入問(wèn)題進(jìn)行一下總結(jié),本文給大家詳細(xì)介紹了C++輸入空格字符串的三種解決方法,需要的朋友可以參考下

一.gets和fgets

char * gets ( char * str );
char * fgets ( char * str, int num, FILE * stream );

1. gets 是從第?個(gè)字符開(kāi)始讀取,?直讀取到 \n 停?,但是不會(huì)讀取 \n ,也就是讀取到的內(nèi)容中沒(méi)有包含 \n ,但是會(huì)在讀取到的內(nèi)容后?動(dòng)加上 \0 。

2. fgets 也是從第?個(gè)字符開(kāi)始讀取,最多讀取 num-1 個(gè)字符,最后?個(gè)位置留給 \0 ,如果num 的?度是遠(yuǎn)?于輸?的字符串?度,就會(huì)?直讀取到 \n 停?,并且會(huì)讀取 \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)?起來(lái)后,在控制臺(tái)窗?中輸?: abc def ,按回?,?案1和?案2中arr 數(shù)組的內(nèi)容中差異如下:

二. 還是利用scanf

當(dāng)然C語(yǔ)?中使? scanf 函數(shù)其實(shí)也能做到讀取帶有空格的字符串,只是不常??已。?式就是將 "%s" 改成 "%[^\n]s" ,其中在 % 和 s 之間加上了 [^\n] ,意思是?直讀取,直到遇到\n ,這樣即使遇到空格也就不會(huì)結(jié)束了。

這種?式讀取,不會(huì)將 \n 讀取進(jìn)來(lái),但是在讀取到的字符串末尾加上 \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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論