查找指定字符串的代码
int StringFind(const char *pSrc, const char *pDst, int v_iStartPos)
{
int i, j;
for (i = v_iStartPos; pSrc!='\0'; i++)
{
if(pSrc!=pDst)
continue;
j = 0;
while(pDst !='\0' && pSrc!='\0')
{
j++;
if(pDst!=pSrc)
break;
}
if(pDst=='\0')
return i;
}
return -1;
} 你好!这段代码是一个简单的字符串查找函数,它用于在字符串pSrc中查找字符串pDst,并返回第一次出现的位置。但是这段代码有一些错误,请允许我来帮你进行修正。
int StringFind(const char *pSrc, const char *pDst, int v_iStartPos)
{
int i, j;
for (i = v_iStartPos; pSrc!='\0'; i++)
{
if(pSrc!=pDst)
continue;
j = 0;
while(pDst !='\0' && pSrc!='\0')
{
if(pDst!=pSrc)
break;
j++;
}
if(pDst=='\0')
return i;
}
return -1;
}
这里对比了你提供的代码,主要进行了如下修正:
1. 在循环判断条件中,将 `pSrc` 改为 `pSrc`,以便逐个字符进行比较。
2. 在第一个 if 判断中,将 `pSrc` 和 `pDst` 分别改为 `pSrc` 和 `pDst`,用于判断当前字符是否等于目标字符的首字符。
3. 在内层 while 循环中,将 `pDst` 和 `pSrc` 分别改为 `pDst` 和 `pSrc`,用于逐个字符进行比较。
4. 将 `j++` 的位置调整到循环体结束前,以保证 `j` 的值在比较不通过时也能正确记录字符不匹配的位置。
5. 在最后的 if 判断中,将 `pDst` 改为 `pDst`,用于判断是否已经遍历完目标字符串。
希望这样修改后的代码能帮到你!如果有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]