我有一個練習題在我有難以置信的是寫一個名爲strCut的函數接收兩個C風格的字符串參數s和模式。如果模式字符串包含在s中,則函數修改s,使得s中出現的第一個出現的模式從s中移除。要執行模式搜索,請使用預定義的strstr函數。使用C++ strstr函數來刪除你正在搜索的子串的部分
這是我現在的代碼。
void strCut(char *s, char *pattern)
{
char *x;
char *y;
x = strstr(s, pattern);
cout << x; // testing what x returns
}
int main()
{
char s[100]; // the string to be searched
char pattern[100]; // the pattern string
char response; // the user's response (y/n)
do
{
cout << "\nEnter the string to be searched ==> ";
cin.getline(s, 100);
cout << "Enter the pattern ==> ";
cin.getline(pattern, 100);
strCut(s, pattern);
cout << "\nThe cut string is \"" << s << '"' << endl;
cout << "\nDo you want to continue (y/n)? ";
cin >> response;
cin.get();
} while (toupper(response) == 'Y');
任何幫助是非常讚賞。由於
由於這看起來是功課,我只會給出一個提示:'strstr'完成了一半的工作。剩下的工作將由'memmove'完成。 (它可能*表示* memcpy或'strcpy'也可以這樣做,但那是不正確的。)你也需要'strlen'。 – zwol