【字串處理演算法】字串包括的演算法設計及C代碼實現

來源:互聯網
上載者:User

標籤:內容   過程   執行   返回   csdn   好的   可見   標點符號   ase   

一、需求描寫敘述

給定一個長字串和一個短字串。編敲代碼推斷短字串中的全部字元是否都在長字串中。假設是,則長字串包括短字串;反之,不包括。


為了盡量包括大多數情況,字串中能夠包括大寫和小寫英文字母、數字和各種標點符號。而且區分大寫和小寫字母。


以下舉幾個範例予以說明:

1.假設長字串是“ABCDE”,短字串是“ADC”,那麼短字串中的全部字元都在長字串中。即長字串包括了短字串。


2.假設長字串是“ABCDE”,短字串是“ADCF”。那麼短字串中不是全部字元都在長字串中,即長字串不包括了短字串。


3.假設長字串是“ABCDE”,短字串是“AAB”,那麼短字串中的全部字元都在長字串中。即長字串包括了短字串。

 

二、演算法設計

我們都知道。就像人體是由一個個的細胞組成一樣,一個字串是由一個個的字元組成。假設組成某個字串的全部字元都在還有一個字串中。那麼這個字串就被還有一個字串包括。


因此。我們能夠考慮先將兩個字串中的全部字元都找出來,再推斷較短的字串中的全部字元是否都出如今了較長的字串中。假設是,那麼兩個字串是包括與被包括的關係。假設不是,那麼兩個字串則“形同陌路”。


程式的整體流程1所看到的。

圖1 程式的整體流程

 

三、特殊流程考慮

在編敲代碼的過程中,我們要對輸入的兩個字串的長度及格式多做考慮,如:

1.假設輸入失誤,導致短字串的長度大於了長字串。那麼程式直接返回,不進行興許處理。


2.不同意在輸入字串的中間出現空格,假設出現了,僅僅能把空格前面的內容作為輸入的字串。


3.輸入字串能夠包括字母(區分大寫和小寫)、數字、標點符號等字元。


4.為了方便程式處理,設定較長的字串最長為500個位元組,較短的字串最長為100個位元組。

 

四、程式碼

 

 

五、程式測試

我們將編寫好的程式“StringContains.c”上傳到Linux機器,並使用“gcc -g -o StringContainsStringContains.c”命令對該程式進行編譯,產生“StringContains”檔案。以下對程式進行具體的測試。


1.輸入較長字串為“ABCDF”、較短字串為“AF”時,程式執行情況例如以下:

Please input the longer string:

ABCDF

LongerStr=ABCDF

Please input the shorter string:

AF

ShorterStr=AF

ABCDF contains AF!

 

2.輸入較長字串為“AB”、較短字串為“ABC”時。程式執行情況例如以下:

Please input the longer string:

AB

LongerStr=AB

Please input the shorter string:

ABC

ShorterStr=ABC

ABC is longer than AB, please check!

 

3.輸入較長字串為“awe”、較短字串為“rf”時,程式執行情況例如以下:

Please input the longer string:

awe

LongerStr=awe

Please input the shorter string:

rf

ShorterStr=rf

awe doesn‘t contain rf!

 

4.輸入較長字串為“`11245”、較短字串為“45”時,程式執行情況例如以下:

Please input the longer string:

`11245

LongerStr=`11245

Please input the shorter string:

45

ShorterStr=45

`11245 contains 45!

 

5.輸入較長字串為“123”、較短字串為“123 45”時,程式執行情況例如以下:

Please input the longer string:

123

LongerStr=123

Please input the shorter string:

123 45

ShorterStr=123

123 contains 123!

 

可見,對於上面考慮到的幾種特殊情況,程式均能做出正確的處理。

 

六、需求擴充

基於本文中的需求和程式,我們可考慮對需求進行以下擴充:

1.限制輸入的字串中僅僅能包括字母。假設包括了其他字元,則直接退出而不進行處理。


2.假設較短的字串中的全部字元儘管都在較長的字串中,但某個字元在較短的字串中出現的次數大於了在較長的字串中出現的次數,那麼就覺得較長的字串不包括較短的字串。

 

【字串處理演算法】字串包括的演算法設計及C代碼實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.