C/C++ 面试题练习之:在字符串中查找另一个字符串首次出现的位置

发布时间 2023-04-19 15:13:17作者: 阿病

int findStr(const char* str,const char* s)
{
const char* p1 = s;
int n = 1;  //由于是出现的位置而不是下标,所以初始化为1;
int count = 0;
while (*str != '\0' && *p1 != '\0')
{
if (*str == *p1)  
{

//如果第一个字符相同继续检查后续字符
p1++;

//防止只是一部分相同 计数
count++;

}
else
{

//防止是一部分相同 每次不同时将字符串还原
p1 = s;

//相同时count自增 而n不自增 将两数相加 将count还原
n += count;
n++;
count = 0;
}
str++;
}

return n;
}