#include
#include
using namespace std;
//参考:http://blog.csdn.net/u011303443/article/details/70146384
char temp_str[256];
void ReadStrUnit(char * str,char *temp_str,int idx,int len) // 从母串中获取与子串长度相等的临时子串
{
int index = 0;
for(index; index < len; index++)
{
temp_str[index] = str[idx+index];
}
temp_str[index] = '\0';
}
int GetSubStrPos(char *str1,char *str2)
{
int idx = 0;
int len1 = strlen(str1);
int len2 = strlen(str2);
if( len1 < len2)
{
cout<<"error 1 "< return -1;
}
while(1)
{
ReadStrUnit(str1,temp_str,idx,len2); // 不断获取的从 母串的 idx 位置处更新临时子串
if(strcmp(str2,temp_str)==0)break; // 若临时子串和子串一致,结束循环
idx++; // 改变从母串中取临时子串的位置
if(idx>=len1)return -1; // 若 idx 已经超出母串长度,说明母串不包含该子串
}
return idx; // 返回子串第一个字符在母串中的位置
}
int main(void)
{
char *s1="abc";
char *s2="dfdsfdsabcdfdsabcdd";
int i = 0;
cout< i = GetSubStrPos(s2,s1); //注意,函数调用:母串在前,子串在后
if( i<0 )
{
cout<<"not found"< }
else
{
cout<<"i ="< }
return 0;
}