刪除字串中的子串

2021-09-06 11:23:43 字數 921 閱讀 6856

請編寫乙個函式,刪除乙個字串的一部分。函式原型如下:

int del_substr(char *str, char const *substr)

函式首先應判斷substr是否出現在str中。如果它並未出現,函式就返回0;如果出現,函式應該把str中位於該子串後面的所有字元複製到該子串的位置,從而刪除這個子串,然後函式返回1。如果substr多次出現在str中,函式只刪除第1次出現的子串。函式的第2個引數絕不會被修改。

舉個例子,假定str指向abcdefg。如果substr指向fgh、cdf或xabc,函式應該返回0,str未作任何修改。但如果substr指向cde,函式就把str修改為指向abfg,方法是把f、g和結尾的nul位元組複製到c的位置,然後函式返回1。不論出現什麼情況,函式的第2個引數都不應該被修改。

變化。

/*** delete a portion of a string.

*/#include

#include

#define true 1

#define false 0

int del_substr(char *str, char const *substr);

int main()

int del_substr(char *str, char const *substr)

break;

}if(*subp == '\0')

if(flag)

strp++;

}if(*strp == '\0' && *subp != '\0')

return true;

}源程式借鑑於:

主要做了兩處修改:(這樣才滿足題意要求)

flag=false;由原來藍色處移到現在的紅色字型處;

另外新增了

if(*strp == '\0' && *subp != '\0')

刪除字串中的子串

輸入2個字串s1和s2,要求刪除字串s1 現的所有子串s2,即結果字串中不能包含s2。輸入格式 輸入在2行中分別給出不超過80個字元長度的 以回車結束的2個非空字串,對應s1和s2。輸出格式 在一行中輸出刪除字串s1 現的所有子串s2後的結果字串。輸入樣例 tomcat is a male ccat...

刪除字串中的子串

輸入2個字串s1和s2,要求刪除字串s1 現的所有子串s2,即結果字串中不能包含s2。輸入格式 輸入在2行中分別給出不超過80個字元長度的 以回車結束的2個非空字串,對應s1和s2。輸出格式 在一行中輸出刪除字串s1 現的所有子串s2後的結果字串。輸入樣例 tomcat is a male ccat...

刪除字串中的子串

7 29 刪除字串中的子串 20 分 輸入2個字串s1和s2,要求刪除字串s1 現的所有子串s2,即結果字串中不能包含s2。輸入在2行中分別給出不超過80個字元長度的 以回車結束的2個非空字串,對應s1和s2。在一行中輸出刪除字串s1 現的所有子串s2後的結果字串。tomcat is a male ...