zoukankan      html  css  js  c++  java
  • C语言,查找子字符串并统计个数


    一、C语言,在一个字符串中查找一个子字符串,并统计个数~

    EX:

    #include <stdio.h>
    #include <string.h>
    int find_string(char str[],char substr[]);
    int main()
    {
        /*
        char ch[10] = {"qweasd"};
        int n = strlen(ch);
        int sn = sizeof(ch);
        printf("%d
    ", n);
        printf("%d
    ",sn);
        */
        char ch1[] = "12";
        char ch2[] = "323 12j34312j 434212435 412";
        int sum = find_string(ch2,ch1);
        printf("%d
    ",sum);
    
        return 0;
    }
    
    int find_string(char str[], char substr[])
    {
        int count = 0,i,j,check;
        int len = strlen(str);
        int sublen = strlen(substr);
        for(i = 0; i < len; i++)
        {
            check = 1;
            for(j = 0; j + i < len && j < sublen; j++)
            {
                if(str[i+j] != substr[j])
                {
                    check = 0;
                    break;
                }
            }
            if(check == 1)
            {
                count++;
                i = i + sublen;
            }
        }
    
        return count;
    }
    View Code

    二、从二维数组中查找指定长度的回文字符串

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char ch[8][8] = {{'z','x','x','e','z','c','x','z'},{'q','w','p','q','e','w','r','e'},{'q','w','e','e','w','a','q','w'},{'q','e','w','q','e','r','r','e'},
                            {'q','w','e','e','w','q','e','r'},{'q','w','w','q','e','r','r','e'},{'q','w','e','e','w','q','e','r'},{'q','w','w','q','e','r','r','e'}};
        int i,j,k,len,check = 0,count = 0;
        int length = 4; //查找长度
        for(i=0; i<8; i++)
        {
            for(j=0; j <= 8-length; j++)
            {
                /*
                check = 0;
                for(k=0; k<length/2; k++)
                {
                    if(ch[i][j+k] != ch[i][j+length-k-1])
                    {
                        check = 1;
                        break;
                    }
                }
                if(check == 0)
                {
                    count++;
                }*/
                
                len = 0;
                while((ch[i][j+len] == ch[i][j+length-len-1]) && j+len < 8)
                {
                    if(len == length/2)
                    {
                        count++;
                        break;
                    }
                    len++;
                }
            }
        }
        printf("count:%d
    ",count);
    
        return 0;
    }
    View Code
  • 相关阅读:
    事件(五):事件委托
    事件(四):事件类型
    【[ZJOI2005]午餐】
    【[POI2006]OKR-Periods of Words】
    【2^k进制数】
    【[SHOI2015]脑洞治疗仪】
    【[NOI2016]区间】
    【[SHOI2014]概率充电器】
    【逛公园】
    【[CQOI2014]数三角形】
  • 原文地址:https://www.cnblogs.com/kingshow123/p/stringfind.html
Copyright © 2011-2022 走看看