請編寫乙個函式,刪除乙個字串的一部分。函式原型如下:
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 ...