刪除字串中所有給定的子串

2021-09-30 05:11:37 字數 1333 閱讀 5230

問題描述:

在給定字串中查詢所有特定子串並刪除,如果沒有找到相應子串,則不作任何操作。

要求實現函式:

int delete_sub_str(const char *str, const char *sub_str, char *result_str)

【輸入】 str:輸入的被操作字串

sub_str:需要查詢並刪除的特定子字串

【輸出】 result_str:在str字串中刪除所有sub_str子字串後的結果

【返回】 刪除的子字串的個數

注: i、   子串匹配只考慮最左匹配情況,即只需要從左到右進行字串匹配的情況。比如:

在字串"abababab"中,採用最左匹配子串"aba",可以匹配2個"aba"字串。如果

匹配出從左到右位置2開始的"aba",則不是最左匹配,且只能匹配出1個"aba"字串。

ii、  輸入字串不會超過100 bytes,請不用考慮超長字串的情況。

示例 輸入:str = "abcde123abcd123"

sub_str = "123"

輸出:result_str = "abcdeabcd"

返回:2

輸入:str = "abcde123abcd123*****fdaklfa11123*123jfdlafl"

sub_str = "1234"

輸出:result_str = "abcde123abcd123"

返回:0

int delete_sub_str(const char *str, const char *sub_str, char *result_str);

int len=strlen(str)-strlen(sub_str);

while(*pstr!='/0')

if(*pstr=='/0')break; }

int a0=strlen(sub_str);

int a1=strlen(psub_str);

pstr=pstr-(a0-a1)+1;

psub_str=sub_str; }

int j=0;

pstr = str;

int flag=0;

char *temp=result_str;

for(int i=0;i }

} memcpy(result_str,pstr,strlen(pstr));

*(result_str+strlen(pstr))='/0';

result_str=temp;

return count; }

int main()

KMP 刪除字串中給定的字串

includeusing namespace std define nsiz 1000 int next nsiz char str1 nsiz char str2 nsiz void getnext char str,int n int i 0,j 1 next i 1 while i n els...

刪除子字串

程式功能 輸入乙個主字串和乙個子字串,減去主字串中與子字串相等的部分輸出 如 主字串,yanghua 子字串 gh 輸出結果為 yanua include include void string sub char str char ptr char ret 函式功能 刪除str字串中與ptr字串相等...

找出字串的所有子字串

字首樹實現,遍歷字串。把字串中的每乙個字元都視為字首,用乙個字首樹儲存以每乙個字元為開頭的字串 舉例為 abbc 然後遍歷字首樹,把每個子樹的每一層都作為乙個字串輸出即可。import copy class trienode object def init self,word self.word w...