1. 程式人生 > >字串的輸入、輸出總結(char型別陣列)

字串的輸入、輸出總結(char型別陣列)

  • 宣告
char str[maxn]      //maxn為常量

char型別陣列宣告字串必須給出其大小,之後大小固定。

  • 輸入

cinscanf( ) ,都是遇到"空格"、“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()會將結束字元讀入並刪除