运行结果不正确,不知道哪里错了

img

c字符串末尾是有结束符'\0'的,所以字符串实际长度应该是13和4,构建子串也要加上结束符
(ps修改之后可以正确输出,但是这个程序只能用于a长度为12,b为3的例子,没有通用性)

//main函数改a[13],b[4]
int subtimes(char p[13], char q[4]){
    int i,j,m,n;
    char r[4];
    n=0;
    for(i=0;i<9;i++){
        for(j=0;j<3;j++)r[j]=p[j+i];
        r[3]='\0';
        m=strcmp(r,q);
        if(m==0)n++;
    }
    return n;
}