题目:源串="abcabcabcababcabcabcababcabcab",目标串="abc",求目标串在源串中出现多少次?
这题相对比较简易,用的是原始方法,调用strstr()函数,如果找到目标串,函数返回出现目标串位置的首地址,下一步再将这个指针+1转移到strstr()函数中进行下一轮的匹配。虽然简易,但也是一种匹配方法,所以记录下来。
char *strstr(char *源串,char *目标串);
/*---------完整代码@映雪----------*/ #include <iostream> using namespace std; int main() { char * trace="abc";/*目标串*/ char *str="abcabcabcababcabcabcababcabcab";/*源串*/ char *p;/*中转指针*/ int n=0;/*串出现的次数*/ do { if((p=strstr(str,trace))!=NULL)/*查找到串*/ { ++n;/*计数加1*/ str=++p;/*前移一位*/ } }while(p); cout<<"字符串"<<trace<<"出现"<<n<<"次"<<endl; return 0; }