下面程序问题在哪,为什么编译不过呢??

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:12:24
/*please implement the function strstr(),don't use any C run-time functions.
const char* strstr(const char* string,const char* strCharSet); */

#include <iostream>
#include <string>
using namespace std;

const char* strstr(const char* string,const char* strCharSet)
{
int i,j;
int temp;
for (i = 0; string[i] != '\0'; i++)
{
temp = i;
j = 0;

if (string[i] == strCharSet[j] )
{
while (string[i++] == strCharSet[j++])
{
if (strCharSet[j] == '\0')
{
return &string[i-j];
}
}
}
i = temp;

}

return NULL;
}

int main()
{
char string[] = "12345678";
char substr[] = "34";
//char *str = strstr(string,substr);
cout<<strstr(string,substr)<<endl;
return 0;
}

同意楼上两位的说法,可以用自己定义的命名空间的方法来避免:

/*please implement the function strstr(),don't use any C run-time functions.
const char* strstr(const char* string,const char* strCharSet); */

#include <iostream>
#include <string>

using namespace std;

namespace mySpace
{

const char* strstr(const char* string,const char* strCharSet)
{
int i,j;
int temp;
for (i = 0; string[i] != '\0'; i++)
{
temp = i;
j = 0;

if (string[i] == strCharSet[j] )
{
while (string[i++] == strCharSet[j++])
{
if (strCharSet[j] == '\0')
{
return &string[i-j];
}
}
}
i = temp;

}

return NULL;
}

}

int main()
{
char string[] = "12345678";
char substr[] = "34";
//char *str = strstr(string,substr);<