求解一道c语言统计字符串s在字符串str中出现的次数
int findsub(char* src, char* s)
{
char *ptr=src, *p=s; //定义两个指针
char *ptr2=src+strlen(src), *prev=NULL; //ptr2为src的末位置指针
int len=strlen(s), n=0; //子串的长度和计数器
for(;*ptr;ptr++) //循环整个串
{
if(ptr2-ptr<len) //如果一开始子串就大于src,则退出
break;
for(prev=ptr;*prev==*p;prev++,p++) //寻找第一个相等的位置,然后从此位置开始匹配子串
{
if(*(p+1)==0||*(p+1)==10) //如果已经到了子串的末尾
{
n++; //自增
p=s; //重新指向子串
break;//退出
}
}
}
return n;
}
这是为什么通过 if(*(p+1)==0||*(p+1)==10) 这个条件就能够判断到了子串的末尾?
求大神指教
[解决办法]
这是为什么通过 if(*(p+1)==0
[解决办法]
*(p+1)==10) 这个条件就能够判断到了子串的末尾?
一个是结束符 '\0'没得说
一个是回车,换行符,在C里面也是当作结束符号。
[解决办法]
在ASCII码中0代表空格,10代表换行,所以遇到0或者10表示字符串结束。