精华内容
下载资源
问答
  • 在字符串中查找子串

    千次阅读 2018-07-03 13:57:37
    题目:在字符串中查找子串。给定一个字符串A,要求在一个字符串中查找一个子串B。#include <iostream>#include<assert.h>#include<string.h>using namespace std;char * ...

    题目:在字符串中查找子串。给定一个字符串A,要求在一个字符串中查找一个子串B。

    #include <iostream>

    #include<assert.h>
    #include<string.h>
    using namespace std;
    char * strfind(char *a,char * b)
    {
        assert(a!=NULL&&b!=NULL);
        int lena=strlen(a);
        int lenb=strlen(b);
        if(lena<lenb) return NULL;
        int i=0;
        while(i<=lena-lenb)
        {
            int j=0;
            while(j<lenb)
            {
                if(a[i+j]!=b[j])
                    break;
                j++;
            }
            if(j==lenb)
                return a+i;
            i++;
        }
        return NULL;
    }

    char * strfind2(char *a,char * b)
    {
        assert(a!=NULL&&b!=NULL);
        int lena=strlen(a);
        int lenb=strlen(b);
        if(lena<lenb) return NULL;
        for(int i=0;i<=lena-lenb;i++)
        {
            int j=0;
            for(;j<lenb;j++)
            {
                if(a[i+j]!=b[j])
                    break;
            }
            if(j==lenb)
                return a+i;
        }
        return NULL;
    }

    int main()
    {
        char a[100]="ababcabcacbab";
        char b[100]="abcac";
        cout<<a<<endl;
        cout<<b<<endl;
        cout<<strfind(a,b)<<endl;
        cout<<strfind2(a,b)<<endl;
        return 0;

    }

    输出结果:

    ababcabcacbab
    abcac
    abcacbab
    abcacbab


    展开全文
  • 2 在字符串中查找子串 算法

    千次阅读 2012-08-10 14:47:54
    题目描述: 给定一个字符... 如A="ABCDF",要你A中查找子串B=“CD”。 // O(m * n) int strstr(char * str, char* substr)  {  assert(str ! = NULL && substr != NULL);  int lenA = strlen(str);  int le

    题目描述: 给定一个字符串A,要求在A中查找一个子串B。 如A="ABCDF",要你在A中查找子串B=“CD”。

    // O(m * n)

    int  strstr(char * str, char* substr) 

    {

        assert(str ! = NULL && substr != NULL);

         int lenA = strlen(str);

         int lenB = strlen(substr);

         if(lenA < lenB )

            return -1;

         

         int len = lenA - lenB;

         for (int i = 0; i <= len; i++)

          {  

               for (int j = 0; j < lenB; i ++)

               {

                    if (str[i + j] != str[j])

                        break;

               }

               

           if (j == lenB)

              return i ;

         }

          return   -1;

    }


    展开全文
  • #include <stdio.h> #include <string.h> #include <stdlib.h> int find(char*a){ char*b=(char*)malloc(strlen(a)+1); scanf("%s",b); int i,j,cnt=0; for(i=0;... if(a[i+j]
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int find(char*a){
    	char*b=(char*)malloc(strlen(a)+1);
    	scanf("%s",b);
    	int i,j,cnt=0;
    	for(i=0;i<strlen(a);i++){
    		if(a[i]==b[0]){
    			for(j=0;j<strlen(b);j++){
    				if(a[i+j]==b[j])
    				cnt++;
    			}
    		}
    	}
    	free(b);
    	return cnt; 
    }
    
    void main (){
    	char*a="I think I've got a little crush on you, Bao Huiting.";
    	printf("%d次",find(a));
    }
    
    展开全文
  • #include using namespace std;void del(char* source, char* sub){ char* p = source; char* q = sub; char tmpsource[20]; int i = 0;
    #include <iostream>
    using namespace std;

    void del(char* source, char* sub)
    {
        char* p = source;
        char* q = sub;
        char tmpsource[20];
        int i = 0;
        char *tmp;
        while(*p)
        {
            tmp = p;
            while(*q)
            {
                if(*p == *q)
                {
                    p++;
                    q++;
                }
                else
                    break;
            }
            if(*q == '\0')
            {
                q = sub;
            }
            else
            {
                tmpsource[i++] = *tmp;
                p = tmp+1;
                q = sub;
            }
        }
        tmpsource[i] = '\0';
        source =tmpsource;
    }

    int find(char *source, char* sub)
    {
        char *p = source;
        char *q = sub;
        char *tmp;
        while(*p)
        {
            tmp = p;
            while(*q)
            {
                if(*p == *q)
                {
                    p++;
                    q++;
                }
                else
                    break;
            }
            if(*q == '\0')
                return tmp-source+1;
            else
            {
                p = tmp+1;
                q = sub;
            }
        }
        return 0;
    }
    int main()
    {
        char *sub = "ask";
        char *str = "askdaskaskdaskg";
        del(str, sub);
        cout << str << endl;
        //char *str = "aaaas";

        //int result = find(str, sub);
        //cout << result << endl;
        return 0;
    }
    展开全文
  • #include <stdio.h> #include <string.h> #include <stdlib.h> int find(char*a){ char*b=(char*)malloc(strlen(a)+1); scanf("%s",b); int i,j; for(i=0;... if(a[i+j]==b[j]
  • 字符串中查找子串

    2016-03-30 22:31:29
    使用C语言编写程序:1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL具体实现如下:char*strchr(charconst*str,intch) { char*st=(char*)str; while(st) { if(*...
  • 在字符串t中查找子串p时,求第一次匹配的序号。 算法思想:假设t和P是两个给定的串,在t中寻找与p相同子串的过程叫做模式匹配,一般t称为正文,p称为模式,t的长度大于p的长度。如果在t中找到等于p的子串,则匹配...
  • 一个字符串s中查找有几个字串subs,结果返回字串的个数。主要用的indexOf()函数。
  • 用C语言编写代码:完成对任何两个字符串 a和b的连接,并连接后的字符串中查找子串c母串中首次出现的位置。 要求(1)子串a、b、c从键盘输入;(2)输出母串、子串以及子串母串中的位置。 ...
  • 题目:在字符串S中查找字符串T,并返回T首字母在S中的位置、代码:int Index(string s, string t, int pose){ int n,m,i=0; n=StrLength(s); m=StrLength(t); string sub; while(i&lt;n-m+1){ SubString...
  • 字符串- 查找子串

    2018-07-25 17:04:59
    主要的思路就是,不断的...成功找到子串,返回子串首字母串中的位置,该位置从 0 开始。 #include &lt;stdio.h&gt; #include &lt;string.h&gt; char temp_str[30]; // 临时子串 void ReadS...
  • strstr是查找在一个字符串s1中子串s2第一次出现的起始位置,并返回一个指向该位置的指针。若s2没有完整的出现s1的任何地方,函数将返回一个NULL指针;若s2为空字符串,函数则返回s1。 标准库,并不存在strrstr...
  • 6-3 字符串 - 查找子串(pta)

    千次阅读 2020-02-25 21:16:08
    查找子串(BF算法) (10分)C语言标准函数库中包括 strstr 函数,串中查找子串。作为练习,我们自己编写一个功能与之相同的函数。 函数原型 char* StrStr(const char *txt, const char pat); 说明:txt 和 pat ...
  • 从文本文件中读取多个字符串(空格或者换行符隔开),用链表存储,要求输入一个子串,结点中的单词(字符串中)查找子串,以及相邻字符子串中查找子串,返回子串所在单词的位置,以及从该单词的第几个位置开始。...
  • //串中查找子串,只保留子串之前的数据 char * myStrSubEnd(char *str,const char *dest) { char *tmpStr = str; int inde = 0; while(*tmpStr != '\0') { if((*tmpStr) == (*dest)) {
  • //串中查找子串,只保留子串之后的数据 char * clientDialog::myStrSubFront(char *str,const char *dest) { char *tmpStr = str; // int inde = 0; while(*tmpStr != '\0') { if((*tmpStr) == (*...
  • 字符串@"Welcome to Bejing!",中查找 Beijing的范围。 */ #import int main(int argc, const char * argv[]) { @autoreleasepool { NSString * str1 = @"Welcom to Beijing"; NSString * str2 =
  • Java中字符串中子串的查找共有四种方法(indexof())Java中字符串中子串的查找共有四种方法,如下:1、int indexOf(String str) :返回第一次出现的指定子字符串字符串中的索引。2、int indexOf(String str, int ...
  • 题意是给你给两个字符串s,t,之后给出s的q个区间,对每个区间[l,r]询问s的这个区间存在多少个子串与t相同 一开始的思路是每给出一个区间[L,R]。便s相应的区间进行查找t出现的次数,因为大佬们说自己暴力过了...
  • "子串在串中的索引值为:"  + Convert .ToString(pos);  }   else    {  label1.Text = "您输入的子串不存在" ;  }  }    } } 运行结果:
  • 这个是实现在某个字符串中某个子串出现的所有的位置,是一个位置列表,列表中是多个元组,该子串在字符串中出现次数和该列表的长度相同,二元组是对应的初始位置和结束位置 location = [] for i in ...
  • 一个大字符串中寻找substring的两种实现方法 第一种是使用一个点进行查找的方式,以下是实现的代码。 bool findSub1(string scr, string tar) { using namespace std; if (scr.empty() || tar.empty() || scr....
  • * kmp算法完成的任务是:给定两个字符串text和pattern, * 长度分别为n和m,判断pattern是否text出现,如果出现则返回出现的位置。 * 否则返回-1 * 常规方法是遍历text的每一个位置,然后从该位置开始和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,891
精华内容 756
关键字:

在字符串中查找子串