☆ C/C++ 字符串的排序、粘貼與轉型

由於代碼不是在一個文件中,不方便貼在博客頁面上,代碼我已上傳到個人資源中,須要的能夠直接下載使用:git

資源地址:https://download.csdn.net/download/qq_42292831/10734117算法

代碼基於VS2010編寫,在VS2010如下版本沒法直接運行,可是代碼.cpp文件仍是能夠直接分開使用的;編程

****************************************************************************************************************************************數組

 

下面附上代碼編寫要求(資源中也包含該要求文檔):

★1.    請編寫程序,實現函數atoi(),不容許使用C標準庫函數做字符串轉換。
       //函數atoi:將輸入字符串轉換成整數輸出 
       //輸入參數:str,輸入字符串 
       //          count,從str中轉換的最長字符長度,該參 
       //          數缺省值爲-1,即要求函數轉換至str結束。
       //返回值:轉換結果,若str沒法轉換成整數,返回0
       int atoi(const char str[], int count=-1);安全

【要求】 
       1)    本函數能處理的合法整型數值字符串爲符合如下形式:
(whitespace)<sign>[digits],其中(whitespace)表示能夠有0個、1個或多個前導空格,<sign>表示能夠有0個或1個「±」符號字符,[digits]表示至少有1個[‘0’~‘9’]之間的數字字符,容許數字以’0’開始。sign和第一個數字字符之間無空格,各數字字符之間也無空格。
       2)    當輸入的字符串str在(whitespace)<sign>以後的第一個字符非數字字符時,函數應該馬上返回INT_MIN(-2147483648);
       3)    當輸入的字符串str能夠輸入至少1個數字字符,但其後遇到非數字字符時,中止輸入,返回遇到非數字字符以前的轉換結果;
       4)    能夠要求用戶輸入的字符串長度不超過你設定的最大值。函數

 

★2. 用指針方式實現函數strcat。函數strcat(s,t)將t指向的常量字符串複製到s指向的字符串的尾部。
      //函數strcat: 實現兩個字符串的拼接, s <- s + t
      //輸入參數: char * s,包含’\0’結束符的源字符串1
      //          char * t,包含’\0’結束符的源字符串2
      //返回值: 源字符串t拼接到源字符串s的尾部,結果存在源字符串s中,返回源字符串s
      char * strcat(char * s, const char * t);spa

【要求】 
1) 用指針編程;
2) 不能使用C標準庫<string.h>的函數,包括strlen; 
3) 拼接完成後結果字符串s應以’\0’結束。.net

 

★3.    對於題2,編寫函數的安全版strncat,最多對參數字符串中的n個字符進行操做,即strncat(s,t,n)最多將字符串t中的n個字符拼接到s的尾部。
      //函數strncat: 實現兩個字符串的拼接, s <- s + t
      //輸入參數: char * s,包含’\0’結束符的源字符串1
      //          char * t,包含’\0’結束符的源字符串2
      //          int n,t拼接到s尾部的最長長度n
      //返回值: 源字符串t拼接到源字符串s的尾部,結果存在源字符串s中,返回源字符串s
      //說明: 若t在n個字符後仍未遇到’\0’,則函數應馬上退出(此時不須要爲s添加結束
      //符),不然應爲s添加結束符’\0’而正常退出
      char * strncat(char * s, const char * t, int n);指針

 

★4.    編寫函數mysort。實現一組字符串的排序。
      //函數mysort: 實現一組字符串的排序,排序依據遵守strcmp函數規定的字典順序,即
      //strcmp(s,t)>0時,定義s大於t;
      //strcmp(s,t)==0時,定義s等於t;
      //strcmp(s,t)<0時,定義s小於t.
      //輸入參數: char * lineptr[],指針數組,包含若干個字符串,每一個均以’\0’結束
      //          int start,要排序的第一個字符串在lineptr中的下標
      //          int end,要排序的最後一個字符串在lineptr中的下標
      //返回值: 無
      void mysort(char * lineptr[], int start, int end);
【要求】 
1) 使用冒泡排序算法;
2) 不能使用C標準庫函數,包括其中的排序函數;
3) 可使用習題7中的getline函數,讓用戶從鍵盤輸入10行文本,而後對這10行文本進行排序後打印輸出。排序

 

 

 

****************************************************************************************************************************************

 

             最快的腳步不是跨越,而是繼續,最慢的步伐不是小步,而是徘徊。
 

****************************************************************************************************************************************