首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解一路c语言统计字符串s在字符串str中出现的次数

2013-06-26 
求解一道c语言统计字符串s在字符串str中出现的次数int findsub(char* src, char* s){char *ptrsrc, *ps

求解一道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)  这个条件就能够判断到了子串的末尾?

求大神指教求解一路c语言统计字符串s在字符串str中出现的次数
[解决办法]

这是为什么通过  if(*(p+1)==0
[解决办法]
*(p+1)==10)  这个条件就能够判断到了子串的末尾?
一个是结束符 '\0'没得说
一个是回车,换行符,在C里面也是当作结束符号。
[解决办法]
在ASCII码中0代表空格,10代表换行,所以遇到0或者10表示字符串结束。

热点排行