2009年7月8日 星期三

[C++] 字串反轉

題目

請將輸入的每一行字串,顛倒倒印出來。


範例輸入
tsetnoC retsaM gnimmagorP SC UCCN
ecneicS retupmoC UCCN 
範例輸出
NCCU CS Progamming Master Contest
NCCU Computer Science
_________________________
#include 
#include 
using namespace std;
int main() {
int i,a=200;
char s[a];
while(cin.getline(s,a)){
for(i=strlen(s);i>0;i--)
cout <<>
_________________________
在這題使用getline的時候,發現了一些相似的東西
cin
cin.get()
cin.getline()
上面三個都是c++的輸入函數,他們不同的地方在於
cin的終止符號有-enter space tab
cin.get()的終止符號只有enter,而且遇到終止符號後,最後指標會指向終止符號.
cin.getline()的結束符也只有enter,但最後指標會指向終止符號後一個的字元.
例如:
char ab[20];
cin >> ab; cout<< ab << endl; cin.getline(ab,20,'.'); cout<< ab << endl; cin.getline(ab,20,'.'); cout<< ab << endl;
輸入:字 串 反 轉.字 串 反 轉.字 串 反 轉
輸出結果為:
串 反 轉
字 串 反 轉
如果把第一個cin.getline改為cin.get,
結果為:
串 反 轉
//這行為空
我們會發現第三行為空,因為使用cin.get以後,最後指標會指向終止符號,
當用cin.getline讀取時,一開始就遇到終止符號,因此第三行為空.
cin.get()也是輸入一行,同cin.getline(),但是區別就是,不指向終止符號.

沒有留言:

張貼留言