我有任務編寫一個函數char * stringReplace(const char * str, const char * what, const char * with)
,它用正確長度的新字符串替換帶有「with」的「what」。所以在函數內部我創建了函數返回的動態數組。但我的問題是如何刪除它後,因爲如果我試圖刪除它在主函數中,我使用它後,它說它是未定義的。不是沒有範圍的動態數組,或者我錯了? 這裏是我的代碼:用字符數組(字符串)代替C++
#include <iostream>
#include <string.h>
using namespace std;
bool areTheSame(const char * str, const char * what, unsigned p)
{
return areEqual;
}
unsigned howManyTimes(const char * str, const char * what)
{
}
char * stringReplace(const char * str, const char * what, const char * with)
{
}
int main()
{
char str[1000];
char what[1000];
char with[1000];
cout << "Enter your string\n";
cin.getline(str, 1000);
cout << "\nEnter \"what\" you want to replace\n";
cin.getline(what, 1000);
if (strlen(str) < strlen(what))
{
cout << "\"What\" contains more characters than the string!\n";
return 0;
}
cout << "\nEnter with what you want to replace it\n";
cin.getline(with, 1000);
cout << "\nYour string with replaced words looks like\n";
cout << stringReplace(str, what, with) << endl;
return 0;
}
PS我刪除部分代碼,因爲我發現我想要的答案,仍然有時間的任務,我不知道我被允許公開發布我的代碼
什麼? ......... –
嗯...我在主要功能中沒有看到任何「刪除」。如果將'stringReplace'的結果存儲在一個變量中,它應該可以工作,如果它是非空的,則可以使用'delete'。 – Sjlver
在main()中,將'stringReplace(str,what,with)'的返回值放在char *類型的變量中。然後在cout後刪除[]。 – drescherjm