C++學習—————string類和標準模板庫

來源:互聯網
上載者:User

 

/*-----------------------------------------------------------------------------------------迴文是指的是順講習和逆讀都一樣的字串。例如,“tot”和“otto”都是簡短的迴文。編寫一個程式,讓使用者輸入字串,並將字串引用傳遞給一個bool函數。如果字串是迴文,該函數將返回true,否則返回false。此時,不要擔心諸如大小寫、空格和標點這些複雜的問題。即這個簡單的版本將拒絕"Otto"和"Madam, I'm Adam"。檔案:test.cpp-------------------------------------------------------------------------------------------*/#include<iostream>#include<string>using std::string ;using std::cout ;using std::cin ;bool IsPlaint(const string &szStr) ;bool IsPla(const string &szStr) ;   //此乃是答案版本int main(void){string szStr ;cout << "Enter a word(q to quit) : " ;while(cin >> szStr && szStr != "q"){if(IsPlaint(szStr)){cout << "What you have enter "<< szStr << " is a plaint word \n\n" ;}else{cout << "What you have enter "<< szStr << " isn't a plaint word \n\n" ;}cout << "Enter next word(q to quit) : " ;}return 0 ;}bool IsPlaint(const string &szStr){int i = 0 ;int n = 0 ;n = szStr.size() ;for(i = 0 ; i < (n / 2) ; i++){if(szStr[i] != szStr[n-i-1])return false ;}return true ;}bool IsPla(const string & szStr)    // 赤裸裸的STL。。。。{string re(szStr.rbegin() ,szStr.rend () ) ;return ( re == szStr ) ;}

 

 

 

/*-----------------------------------------------------------------------------------------編寫一個具有老式風格介面的函數,其原型如下:int  reduce (long ar[] , int n ) ;實參應是數組名和數組中的元素個數。該函數對數組進行排序,重複資料刪除的值,返回縮減後數組中的元素數目。請使用STL函數編寫該函數(如果決定使用通用的unique()函數,請注意它將返回結果區間的結尾)。使用一個小程式測試該函數。檔案:test.cpp-------------------------------------------------------------------------------------------*/#include<iostream>#include<string>using std::string ;using std::cout ;using std::cin ;using std::getline ;using std::endl ;int reduce(long ar[] , int n ) ;void show(long ar[] ,int n ) ;int main(void){long ar[10] = {9,3,4,7,4,3,10,8,8,4} ;show(ar, 10) ;cout << "There are " << reduce(ar,10) << " numbers" ;return 0 ;}void show(long ar[], int n ) {int i = 0 ;for(i = 0 ; i < n ; i++){cout << ar[i] << endl ;}}int reduce(long ar[] , int n ){int i = 0 ;long *begin , *end ;begin = ar ;end = ar + n ;std::sort(begin,end) ;end = std::unique(begin,end) ;   //STL用法,很不習慣,而且經常要去尋找return end - ar ;}

/*-----------------------------------------------------------------------------------------編寫一個具有老式風格介面的函數,其原型如下:int  reduce (long ar[] , int n ) ;實參應是數組名和數組中的元素個數。該函數對數組進行排序,重複資料刪除的值,返回縮減後數組中的元素數目。請使用STL函數編寫該函數(如果決定使用通用的unique()函數,請注意它將返回結果區間的結尾)。使用一個小程式測試該函數。檔案:test.cpp-------------------------------------------------------------------------------------------*/#include<iostream>#include<string>using std::string ;using std::cout ;using std::cin ;using std::getline ;using std::endl ;template<class T>int reduce(T ar[] , int n ) ;void show(long ar[] ,int n ) ;int main(void){long ar[10] = {9,3,4,7,4,3,10,8,8,4} ;show(ar, 10) ;cout << "There are " << reduce(ar,10) << " numbers" ;return 0 ;}void show(long ar[], int n ){int i = 0 ;for(i = 0 ; i < n ; i++){cout << ar[i] << endl ;}}template<class T>int reduce(T ar[] , int n ){int i = 0 ;T *begin , *end ;begin = ar ;end = ar + n ;std::sort(begin,end) ;end = std::unique(begin,end) ;return end - ar ;}

 

/*---------------------------------------------------------------------------------------------

本來要做多幾題練習題,發現自己對STL的概念,還有一些庫裡面的函數

不是記得很清楚,所以還是先做兩題先。其它的等自己熟悉一下再去練一

下。

-----------------------------------------------------------------------------------------------*/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.