C 刪除字串中的子串

2021-07-10 20:00:40 字數 1672 閱讀 6164

輸入2個字串s1和s2,要求刪除字串s1中出現的所有子串s2,即結果字串中不能包含s2。

輸入格式:

輸入在2行中分別給出不超過80個字元長度的、以回車結束的2個非空字串,對應s1和s2。

輸出格式:

在一行中輸出刪除字串s1中出現的所有子串s2後的結果字串。

輸入樣例:

tomcat is a male ccatat

cat

輸出樣例:

tom is a male
程式**1:

#include

#include

#include

using

namespace

std;

char* f1(char a,char b);

void del(char a,char b);

int main()

char* f1(char a,char b)

}return0;}

void del(char a,char b)

程式**2:

#include

#include

#include

using

namespace

std;

char* f1(char a,char b);

void del(char a,char b);

int main()

char* f1(char a,char b)

}return0;}

void del(char a,char b)

注意:

上面兩段**有5處不同。

**1用gets()函式來輸入字串,**2用fget()函式來輸入字串。gets()函式在換行時結束輸入,不會把』\n』納入字串內容,fget()函式也是在換行時結束輸入,但是會把』\n』作為字串內容的一部分。

例如有以下輸入:

hello world(換行)
執行gets(a)和fgets(a,80,stdin)得到的結果是:

兩者的區別就在此。正是因為這個區別,所以導致了兩段**後面四處的不同。

兩段**執行結果稍微有點區別:

**1結果:

**2結果:

可見**2的執行結果比**1多了乙個空行,原因就是fgets(a)的時候a的末尾有乙個』\n』。

刪除字串中的子串

請編寫乙個函式,刪除乙個字串的一部分。函式原型如下 int del substr char str,char const substr 函式首先應判斷substr是否出現在str中。如果它並未出現,函式就返回0 如果出現,函式應該把str中位於該子串後面的所有字元複製到該子串的位置,從而刪除這個子串...

刪除字串中的子串

輸入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...