char* strstr_bin(char* str, char* part, int str_len, int part_len)
{
int i = 0; // 这里改为 int k = 0;
while (i < str_len)
{
int i = 0; //这里改为 int i = k;
int j = 0;
while ((i<str_len) && (j<part_len))
{
if (str[i] != part[j])
break;
i++;
j++;
if (j == part_len)
return str+i-part_len;
}
i++; //K++
}
return NULL;
}
是求这PART在STR中出现的位置并读出程序的一部分
谢谢大家
[此贴子已经被作者于2007-9-28 9:46:47编辑过]
----------------解决方案--------------------------------------------------------
char* strstr_bin(char* str, char* part, int str_len, int part_len)
{
int i = 0;
while (i < str_len)
{
int j = 0;
while ((i<str_len) && (j<part_len))
{
if (str[i] != part[j])
break;
i++;/*这里存在错误,当break跳出这个循环的时候,i的值没有被返回来*/
j++;
if (j == part_len)
return str+i-part_len;
}
i++;
}
return NULL;
}
是求这PART在STR中出现的位置并读出程序的一部分
谢谢大家
----------------解决方案--------------------------------------------------------
char* strstr_bin(char* str, char* part, int str_len, int part_len)
{
int i = 0;
int i_temp;
while (i < str_len)
{
i_temp=i;//暂存i
int j = 0;
while ((i<str_len) && (j<part_len))
{
if (str[i] != part[j])
{
i=i_temp;//重置i
break;
}
i++;
j++;
if (j == part_len)
return str+i-part_len;
}
i++;
}
return NULL;
}
[此贴子已经被作者于2007-9-27 21:47:22编辑过]
----------------解决方案--------------------------------------------------------
谢谢静思了
不过我自己想了下,这样写对么?
修改的在原程序上红色部分
[此贴子已经被作者于2007-9-28 9:43:56编辑过]
----------------解决方案--------------------------------------------------------
没人顶啊,自己顶
----------------解决方案--------------------------------------------------------
没人看啊 ,难道是没问题?
----------------解决方案--------------------------------------------------------