int find_replace_str(char str[],const char find_str[],const char replace_str[])
{
//别的操作
char *newStr=new char[newLength+1];
//对newStr的操作
str = newStr;
return count;
}
int main()
{
char *str="abceeeabceeeeabceeeeabceeeeeabc";
const char *find_str="abc";
const char *replace_str="ABCD";
cout<<find_replace_str(str,find_str,replace_str)<<" "<<str<<endl;
cin.get();
return 0;
}
main函数中的str还是之前的str,请教大神如何解决
我知道传递引用或者二级指针可以,但是这是南京大学复试的题目,函数名就是这么写的。
程式中有兩處問題:
所以,可以透過參數
str
將main
中分配的數組傳遞到函數find_replace_str
中,而函數find_replace_str
再對這個數組進行修改替換,從而影響到main
中分配的數組的內容。另外,
(2)
處將一個常數字串賦值給非常量指標是錯誤的,一個常數字串只能賦值給常數指標或字元陣列。否則的話,就有可能透過非常量指標來修改字串。函數名字的意思很明顯,針對字元陣列操作,替換掉需要替換的子字串
main函數是你寫的吧,這樣用是不對的,字串是const char *,不能改變的,你需要宣告數組
這樣子,在find_replace_str裡面