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

    千次阅读 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


    展开全文
  • 主要介绍了Python字符串中查找子串小技巧,,需要的朋友可以参考下
  • C语言版字符串查找函数,字符串中查找子串

    操作系统: Windows10 64位

    运行环境: Visual Studio 10


    依赖的头文件:

    #include <string.h>
    #include <stdlib.h>


    /***************************************************************
    /*	函 数 名:FindSubstring
    /*	函数功能:C语言版,在字符串中查找子串
    /*	参    数:
    /*			  strSource:待查找的源字符串
    /*			  strSub:	 要查找的子串
    /*	返 回 值:
    /*			  返回 0,表示查找成功
    /*			  返回-1,表示查找失败
    /*
    /*	作    者:X攻城狮
    /*	日    期:2015年11月4日
    /***************************************************************/
    int FindSubstring (const char *strSource, const char *strSub)
    {
    	unsigned int uLen = strlen(strSource);
    	if (uLen == 0)
    	{
    		return -1;
    	}
    	char *str1 = (char *)malloc(uLen+1);
    	memset(str1, 0, uLen+1);
    	strcpy(str1, strSource);
    
    	uLen = strlen(strSub);
    	if (uLen == 0)
    	{
    		free(str1);
    		return -1;
    	}
    	char *str2 = (char *)malloc(uLen+1);
    	memset(str2, 0, uLen+1);
    	strcpy(str2, strSub);
    
    	unsigned int i = 0, j = 0;
    	for(i=0; i<=strlen(strSource); i++)
    	{
    		if (str1[i] == str2[j])
    		{
    			j++;
    		}
    		else
    		{
    			if (j == uLen)
    			{
    				break;
    			}
    			else
    			{
    				j = 0;
    			}
    		}
    	}
    
    	free(str1);
    	free(str2);
    
    	if (j == uLen)
    	{
    		return 0;
    	} 
    	else
    	{
    		return -1;
    	}
    }


    展开全文
  • python 字符串中查找子串

    千次阅读 2016-04-02 11:27:11
    # -*- coding:UTF-8 -*-... 字符串中查找子串的方法 检查字符串s2是不是含有s1 """ # 方法1: def is_sub_string1(s1, s2): tag = False len1 = len(s1) len2 = len(s2) for i in range(0, len2): if s2[i] ==
    # -*- coding:UTF-8 -*-
    
    """
       字符串中查找子串的方法
       检查字符串s2中是不是含有s1
    """
    
    
    # 方法1:
    def is_sub_string1(s1, s2):
        tag = False
        len1 = len(s1)
        len2 = len(s2)
        for i in range(0, len2):
            if s2[i] == s1[0]:
                for j in range(0, len1):
                    if s2[i] == s1[j]:
                        tag = True
        return tag
    
    
    # 方法2:利用字符串自带的find()方法
    def is_sub_string2(s1, s2):
        tag = False
        if s2.find(s1) != -1:
            tag = True
        return tag
    
    
    # 方法3:关键字"in”不仅可以用于列表、元祖等数据类型,还可以用于字符串。
    #       所以,这里只需要直接一行代码搞定:
    def is_sub_string3(s1, s2):
        return s1 in s2
    
    
    
    
    
    
    展开全文
  • 字符串中查找子串

    2016-06-11 18:52:48
    使用C语言编写程序:1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL具体实现如下:char* strchr(char const *str, int ch) { char* st = (char*)str; ...

    使用C语言编写程序:

    1、在字符串中查找一个指定的字符第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL

    具体实现如下:

    char* strchr(char const *str, int ch)
    {
    	char* st = (char*)str;
    	while (st)
    	{
    		if (*st == ch)
    			return st;
    		st++;
    	}
    	return NULL;
    }

    2、在字符串中查找一个指定的字符串第一次出现的位置,并返回字符所在的位置,如果不存在则返回NULL

    具体实现如下:

    char* strstr(char const *s1, char const *s2)
    {
    	char* str = (char*)s1;
    	char* ch = (char*)s2;
    	char* cur = str;//设置cur标志位
    	while (cur)
    	{
    		char* p1 = cur;
    		char* p2 = ch;
    		while (p1 && p2 && *p1 == *p2)//注意此处用*p1和*p2比较两个是否相同
    		{
    			p1++;
    			p2++;
    		}
    		if (*p2 == '\0')//注意此处不能用p2==NULL
    			return cur;
    		else
    			cur++;
    	}
    	return NULL;
    }

    测试如下:

    void test()
    {
    	char const* str = "abaabcde";
    	int ch = 'b';//strchr查找字符
    	char* arr = "abc";//strstr查找字符串
    	printf("%p----%p\n", str + 1, strchr(str, ch));//找到ch返回ch指针,否则为NULL
    	printf("%p----%p\n", str + 3, strstr(str, arr));//找到arr返回子串指针,否则为NULL
    }

    小知识:编写程序判断你的电脑是小端存储还是大端存储。

        大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;

        小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

    void test()
    {
    	int num = 3;//Ox000003
    	char* p = (char*)&num;
    	for (int i = 0; i < 4; i++)
    	{
    		printf("%d ", *p);
    		p++;
    	}
    	if (3 == *(char*)&num)
    	{
    		printf("小端存储!\n");
    	}
    	else
    	{
    		printf("大端存储!\n");
    	}
    }

    本文出自 “Scen” 博客,请务必保留此出处http://10741357.blog.51cto.com/10731357/1758613

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

    千次阅读 2012-08-10 14:47:54
    题目描述: 给定一个字符串A,要求A查找一个子串B。 如A="ABCDF",要你A中查找子串B=“CD”。 // O(m * n) int strstr(char * str, char* substr)  {  assert(str ! = NULL && substr != NULL);  int ...
  • 一个字符串s中查找有几个字串subs,结果返回字串的个数。主要用的indexOf()函数。
  • 在字符串t中查找子串p时,求第一次匹配的序号。 算法思想:假设t和P是两个给定的串,t寻找与p相同子串的过程叫做模式匹配,一般t称为正文,p称为模式,t的长度大于p的长度。如果t找到等于p的子串,则匹配...
  • 用C语言编写代码:完成对任何两个字符串 a和b的连接,并连接后的字符串中查找子串c母串首次出现的位置。 要求(1)子串a、b、c从键盘输入;(2)输出母串、子串以及子串母串位置。 ...
  • #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]
  • 直接利用字符串查找方法,只能查找到字符串首次出现的位置。 input = "abc def abc ghi" str = "abc" start = input.find(str) # 0 start = input.index(str) # 0 end = start + len(str) - 1 # 统计子串出现...
  • 字符串中查找子串出现的次数

    千次阅读 2018-06-01 15:14:15
    1.indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。2.substring(x) 从第x个字符到最后;substring(x,y) 从第x个字符到第y个 字符截取学习代码:思路:indexOf...
  • strstr是查找在一个字符串s1中子串s2第一次出现的起始位置,并返回一个指向该位置的指针。若s2没有完整的出现s1的任何地方,函数将返回一个NULL指针;若s2为空字符串,函数则返回s1。 标准库,并不存在strrstr...
  • int FindSubstring(const char* all, const char* sub) { int all_len = strlen(all); int sub_len = strlen(sub); int i = 0, j = 0; for (;i&lt;all_len;++i) { if (all[i] == sub[0]) ... j...
  • 题目:在字符串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...
  • #include<iostream> using namespace std; int main() { char *strstr(char *src,char *sub); char p[256]; char q[256]; cout<<"input the src:"<<endl; cin>..."inp...
  • 6-3 字符串 - 查找子串(pta)

    千次阅读 2020-02-25 21:16:08
    查找子串(BF算法) (10分)C语言标准函数库包括 strstr 函数,串中查找子串。作为练习,我们自己编写一个功能与之相同的函数。 函数原型 char* StrStr(const char *txt, const char pat); 说明:txt 和 pat ...
  • 字符串倒序 #include <iostream> #include<cstdlib> #include<string> using namespace std; int main() { string s="abcde",temp; temp=s;//注意要设置一个字符串变量承接倒序后的字符串,而且...
  •  上面两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串位置(如果没有找到子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索子字符串,而lastIndexOf()方法是从...
  • "子串在串中的索引值为:"  + Convert .ToString(pos);  }   else    {  label1.Text = "您输入的子串不存在" ;  }  }    } } 运行结果:
  • 字符串@"Welcome to Bejing!",中查找 Beijing的范围。 */ #import int main(int argc, const char * argv[]) { @autoreleasepool { NSString * str1 = @"Welcom to Beijing"; NSString * str2 =
  • //串中查找子串,只保留子串之前的数据 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) == (*...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,738
精华内容 29,495
关键字:

在字符串中查找子串的位置