zoukankan      html  css  js  c++  java
  • 简单字符串查找

    从字符串 t 查找子字符串 p 。

    采用朴素的匹配算法。
    返回子字符串第一次出现的位置,例如t="string ring",p="ring",则返回2。
    若没有找到,则返回-1。

    #include <stdio.h>
    #include <stdlib.h>
    
    int FindSubStr(char* t, char* p){
        int i=1,j=0;
        int tl,lp;
        while(p[i])
            i++;
        lp=i;
        i=1;
        while(t[i])
            i++;
        tl=i;
        i=0;
        while(i<tl&&j<lp){
            if(t[i]==p[j]){
                j++;
                i++;
            }
            else{
                i=i-j+1;
                j=0;
            }
        }
        if(j+1>lp)
            return i-lp;
        else
            return -1;
    }
    
    int main()
    {
        char t[20],p[20];
        printf("请输入主串:");
        scanf("%s",t);
        printf("请输入要测试的子串:");
        scanf("%s",p);
        int flag;
        flag = FindSubStr(t, p);
        if(flag ==-1)
            printf("not found!
    ");
        else
            printf("匹配成功!匹配位置为 %d
    ",flag);
        return 0;
    }
  • 相关阅读:
    Array
    java 设计模式
    Hashtable
    lettCode-Array
    最短路径 dijkstra
    算法:优先级队列
    7.29 DFS总结
    SZU:D89 The Settlers of Catan
    SZU:B47 Big Integer I
    7.25 RPN转换
  • 原文地址:https://www.cnblogs.com/jxxclj/p/9067733.html
Copyright © 2011-2022 走看看