亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2025年04月01日 11:29:44   作者:style-h  
字符串一直是一個(gè)重點(diǎn)加難點(diǎn),很多筆試面試都會涉及,帶空格的字符串更是十分常見,現(xiàn)在對字符串的輸入問題進(jìn)行一下總結(jié),本文給大家詳細(xì)介紹了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)文章

最新評論