题目是:不用c的库函数, 用c++实现const char *strstr(const char *p1, const char *p2)的这个函数--从p1这个字符串里面找出p2这个字符串的位置, 返回第一个位置
我的答案:
const char *strstr(const char *p1, const char *p2)
{
int i;
for( i=0;*(p1+i)!='\0';i++)
{
if(*(p1+i)==*p2)
{
for(int j=0;*(p2+j)!='\0';j++)
{
if(*(p2+j+1)=='\0')
return (p1+i);
if(*(p1+i+j+1)!=*(p2+j+1))
break;
}
}
}
if(*(p1+i)=='\0')
return NULL;
return (p1+i);
}
我的答案:
const char *strstr(const char *p1, const char *p2)
{
int i;
for( i=0;*(p1+i)!='\0';i++)
{
if(*(p1+i)==*p2)
{
for(int j=0;*(p2+j)!='\0';j++)
{
if(*(p2+j+1)=='\0')
return (p1+i);
if(*(p1+i+j+1)!=*(p2+j+1))
break;
}
}
}
if(*(p1+i)=='\0')
return NULL;
return (p1+i);
}
准备调用CFileDialog SaveDlg(FALSE);
但是运行到SaveDlg.DoModal();这个语句时错误,弹出对话框:0x77f4418e 处未处理的异常: 0xC0000005: 写入位置 0x00430248 时发生访问冲突。
我不是在OnSaveDocument(LPCTSTR lpszPathName)里调用的,是在自己新建的菜单项的相应函数里调用的,是不是这个原因导致的错误呢?我试了,在OnSaveDocument(LPCTSTR lpszPathName)里调用是没问题的。
准备调用CFileDialog SaveDlg(FALSE);
但是运行到SaveDlg.DoModal();这个语句时错误,弹出对话框:0x77f4418e 处未处理的异常: 0xC0000005: 写入位置 0x00430248 时发生访问冲突。
我不是在OnSaveDocument(LPCTSTR lpszPathName)里调用的,是在自己新建的菜单项的相应函数里调用的,是不是这个原因导致的错误呢?我试了,在OnSaveDocument(LPCTSTR lpszPathName)里调用是没问题的。
准备调用CFileDialog SaveDlg(FALSE);
但是运行到SaveDlg.DoModal();这个语句时错误,弹出对话框:0x77f4418e 处未处理的异常: 0xC0000005: 写入位置 0x00430248 时发生访问冲突。
我不是在OnSaveDocument(LPCTSTR lpszPathName)里调用的,是在自己新建的菜单项的相应函数里调用的,是不是这个原因导致的错误呢?我试了,在OnSaveDocument(LPCTSTR lpszPathName)里调用是没问题的。