今天看书有个题目,写了程序但是运行的时候总是错误的,请高手指导:
题目是这样的:
写一个函数求一个字符串的子字符串出现的次数,如“abcdabcd”中“ab”出现了两次,请赐教,谢谢:)

解决方案 »

  1.   

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char* argv[])
    {
    char strA[]="abcdefghicdadfcd sdf ";
    char strB[]="abc";
    char* szTemp; int count=0;
    szTemp=strstr(strA,strB);

    while(szTemp){
    szTemp+=strlen(strB);
    szTemp=strstr(szTemp,strB);
    count++;
    } printf("%d",count);
    return 0;
    }
    vc6.0+win98
      

  2.   

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char* argv[])
    {
    char strA[]="abcdefghicdadfcd sdf ";
    char strB[]="abc";
    char* szTemp; int count=0;
    szTemp=strstr(strA,strB);

    while(szTemp){
                  szTemp=strstr(szTemp,strB);
                  if (szTemp!=NULL) szTemp+=strlen(strB);//逻辑错误
         count++;
    } printf("%d",count);
    return 0;
    }
      

  3.   

    上面有一个错误,
    int count=0;
    szTemp=strstr(strA,strB);“szTemp=strstr(strA,strB);“一句要删掉 UP