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

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

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

一.gets和fgets

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

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

2. fgets 也是從第?個字符開始讀取,最多讀取 num-1 個字符,最后?個位置留給 \0 ,如果num 的?度是遠?于輸?的字符串?度,就會?直讀取到 \n 停?,并且會讀取 \n ,將 \n 作為讀取到內(nèi)容的?部分,同時在讀取到的內(nèi)容后?動加上 \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;
}

上述兩個程序,同樣在運?起來后,在控制臺窗?中輸?: abc def ,按回?,?案1和?案2中arr 數(shù)組的內(nèi)容中差異如下:

二. 還是利用scanf

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

這種?式讀取,不會將 \n 讀取進來,但是在讀取到的字符串末尾加上 \0 。

#include <cstdio>
int main()
{
 char arr[10] = "xxxxxxxx";
 scanf("%[^\n]s", arr);
 printf("%s\n", arr);
 return 0;
}

三. getchar

使? getchar 逐個字符的讀取,也是可以讀取?個字符串的。

#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;
}

到此這篇關于C++輸入空格字符串的三種解決方法的文章就介紹到這了,更多相關C++輸入空格字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論