字串的輸入、輸出總結(char型別陣列)
阿新 • • 發佈:2018-12-27
- 宣告
char str[maxn] //maxn為常量
char型別陣列宣告字串必須給出其大小,之後大小固定。
- 輸入
①cin 和 scanf( ) ,都是遇到"空格"、“TAB”、“回車”結束,即一次讀取一個單詞。
#include<cstdio>
scanf("%s",str);
#include<iostream>
cin>>str;
②cin.get ( str , Size ) ,遇到回車或讀滿 (Size-1)個字元結束,但並不會讀入回車,回車依舊被留在緩衝區,第Size個字元也不會被讀入
#include<iostream>
cin.get(str,maxn); //讀入maxn-1個字元,留下一個位置給'\0'
Size中包括 '\0’,故讀取Size-1個字元
此外,cin.get ( 無引數 ) 用法等同於getchar( )。
③cin.getline ( str , Size , 結束字元) ,第三個引數通常省略,省略後預設以‘\0’為結束字元。
cin.getline讀取到回車停止後不會將回車留在快取區,而是將回車讀入並替換為’\0’,即完整讀入一行但字串內不會有回車。
結束字元也會被讀入但隨後被替換為 '\0’
- 輸出
字串的輸出就很簡單了,一般都是從提供的首地址開始,到’\0’結束。
#include <cstdio>
printf("%s",str);
#include<iostream>
cout<<str;
Ps.個人認為在程式設計競賽當中,讀入一個個單詞自然是用cin和scanf(),當需要讀入一行時,用cin.getline()更好,因為cin.getline()不會將這一行的回車留在緩衝區,但是最好不要加第三個引數(結束字元),因為cin.getline()會將結束字元讀入並刪除