1. 程式人生 > >A-Text Reverse(文本反向讀)

A-Text Reverse(文本反向讀)

換行 urn rev 反向輸出 cin 反向 ++ esp 地址

多組數據測試,輸入t,表示要測幾個,每個語句反向輸出。

鏈接

[https://cn.vjudge.net/contest/235390#problem/A]

解:

就是getchar()和gets()的運用.
gets函數的讀取規則:

1.只要gets遇到換行符,即便它是輸入的第一個字符,gets也會停止讀入並返回。如果輸入的第一個字符就是換行符,則字符串將被置為空串。

2.由於gets函數讀入再丟棄換行符,換行符將不會存儲在字符串中。

gets的讀取規則與getline是一樣的。

gets函數的返回值:

1.正常讀入(未遇到文件結尾)(註意,讀入空串也是正常讀入),則返回字符串,即返回字符串首地址,char*類型

2.遇到文件結尾,返回NULL

getchar有一個int型的返回值.當程序調用getchar時.程序就等著用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區中.直到用戶按回車為止(回車字符也放在緩沖區中).當用戶鍵入回車之後,getchar才開始從stdio流中每次讀入一個字符.getchar函數的返回值是用戶輸入的第一個字符的ASCII碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待後續getchar調用讀取.也就是說,後續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字符,直到緩沖區中的字符讀完為後,才等待用戶按鍵.
代碼:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int len,i;
     char a[100];
    int t;
    while(cin>>t)
    {
        getchar();
        while(t--){
        gets(a);
        len=strlen(a);
        for(i=len-1;i>=0;i--)
        cout<<a[i];
        cout<<endl;
    } 
    }
    return 0;
}

A-Text Reverse(文本反向讀)