首页 > 编程知识 正文

c语言算法有哪些,bf算法代码

时间:2023-05-03 11:12:23 阅读:140092 作者:1050

介绍算法从头开始主串和子串,逐位比较。 如果相等,则比较后面的; 如果不等于,则从第二位置开始比较主字符串,直到比较所有字符串(从头开始比较子字符串)。 匹配返回第一个字符串的逻辑位置,否则返回0。

代码实现BF算法使用面向结构的思想即可。

算法intBF(chars (,chars (,char t[] ) ),{ int start=0; //start记录的比较开始位置从主字符串的开头开始为int i=0、j=0; //i,j分别是主字符串、子字符串循环变量while (() ) )!=' ' ) (t[j]!=' ' ) (if ) s[I]==t[j] ) I; j; (else ) cout )主字符串(); 开始; //将开始位置向后移动i=start; //主串从开始位置再次比较j=0; //从开头开始}}if(t[j]==' ' ) return start 1; //完成子字符串遍历,返回子字符串中第一个字符在主字符串中的位置(逻辑上是第几个位置) else return 0; //不匹配。 0}返回完整的代码# includeiostreamusingnamespacestd; intBF(chars (,char t[] ) ) { int start=0; //start记录的比较开始位置从主字符串的开头开始为int i=0、j=0; //i,j分别是主字符串、子字符串循环变量while (() ) )!=' ' ) (t[j]!=' ' ) (if ) s[I]==t[j] ) I; j; (else ) cout )主字符串(); 开始; //开始位置后i=start; //主串从开始位置再次比较j=0; //从开头开始}}if(t[j]==' ' ) return start 1; //子字符串遍历完成,返回子字符串中第一个字符在主字符串中的位置(逻辑第几个位置) else return 0; //不匹配。 0}int main () { char s[100],t[50]; cout '主字符串: '; cins; cout '子字符串: '; cint; if(BF(s,t ) ) coutt )位于(s )中的第(BF ) s,t )个位置。 n ); else cout '不匹配!' ; 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。