文字列を文字列REPLACE
に置き換える関数を作成しようとしています。紙の上で関数をドライ実行しているときは、すべて問題ないように見えますが、実行中には正しい出力が得られません。コードは次のとおりです。given
required
string REPLACE(string src,string reqd,string given)
{
int i,j,k;
int pos = FIND(src,given);
if(pos==-1)
return "";
else
{
char *arr = new char[src.length()+reqd.length()-given.length()]; // creating the array that will hold the modified string
for(i=0;i<pos;i++)
arr[i] = src[i]; // copying the initial part of the string
for(i=pos,j=0;i<pos+reqd.length()+1&&j<reqd.length();i++,j++)
arr[i] = reqd[j]; // copying the required string into array
for(i=pos+reqd.length()+1,k=0;i<sizeof(arr);i++,k++)
arr[i] = src[pos+given.length()+k]; // copying the remaining part of source string into the array
return arr;
}
}
これも私FIND
が書いたもので、多くの場合にテストされています。にエラーは見られませんFIND
。