首页 > 其他分享 >指针实现字符串匹配

指针实现字符串匹配

时间:2024-05-04 17:11:47浏览次数:19  
标签:子串 匹配 sub char str 字符串 指针

#include<stdio.h>

void comp(char*sub,char*str)
{
    int i=0,j=0;
    //通过子串指针移动的次数等于字串的长度,实现匹配成功与否
    //下面代码是直接使用子串和主串是否同时用完子串长度的循环实现
    while(*str){
        for(i=0;*(sub+i)==*(str+i);i++)//判断子串和主串是否相等
        {
            if(!*(sub+i+1))//判断字串是否到尾
            {
                j=1;
                printf("match\n");
                break;
            }
        }
        str++;
        if((!*str)&&j==0)//判断是否没有匹配
        {
            printf("not match\n");
        }
    }
}

int main()
{
    char a[]="abc";
    char b[]="abcabab";
    comp(a,b);
    return 0;
}

 

参考文章

用指针实现字符串匹配(strstr) - Hsinwang - 博客园 (cnblogs.com)

标签:子串,匹配,sub,char,str,字符串,指针
From: https://www.cnblogs.com/LJianYu/p/18172472

相关文章

  • C# String.Split 将字符串按照指定的分隔符分割成一个字符串数组
    以下两种方式都可以分割字符串string[]arr=s.Split('\n');string[]arr=s.Split(newchar[]{'\n'},StringSplitOptions.RemoveEmptyEntries);区别:string[]arr=s.Split('\n');:这种方式使用单个字符作为分隔符,将字符串s按照换行符('\n')进行分割。但是,此......
  • 2024-05-04:用go语言,给定一个起始索引为0的字符串s和一个整数k。 要进行分割操作,直到字
    2024-05-04:用go语言,给定一个起始索引为0的字符串s和一个整数k。要进行分割操作,直到字符串s为空:选择s的最长前缀,该前缀最多包含k个不同字符;删除该前缀,递增分割计数。如果有剩余字符,它们保持原来的顺序。在操作之前,可以修改字符串s中的一个字符为另一个小写英文字母。在最佳情......
  • eBPF基于LPM实现路由匹配
    基于eBPFlpmmap,icmp只有匹配上路由才能通。最终目录结构效果展示启动应用前,可以ping通192.168.0.1和192.168.0.105。启动应用后,无法ping通192.168.0.1,可以ping通192.168.0.105。停止应用后,可以ping通192.168.0.1和192.168.0.105。icmp/drop-icmp.c#include"../heade......
  • 如何批量复制多个文件到多个目录中(提取匹配法)
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z具体操作1、情景再现我这里创建了3个数字命名的文件夹和一些带有数字命名的图片文件。(这里仅做演示作用,实际操作的数量肯定巨大。)观察一下发现,图片分2种命名:一种是'数字.png',另一种是'-数字.png',前面带个了'-'......
  • 无符号整数转二进制字符串逆序输出
    无符号整数转二进制逆序在C语言中,要实现一个函数来传入一个八位无符号整数,并返回其二进制倒序的字符串,你可以使用以下步骤:分配足够的堆空间来存储倒序后的二进制字符串。利用位运算符获取当成8位无符号整数的二进制数可以从高位往遍历也可以从低位往高位遍历从高遍......
  • python教程3.1:数据类型:字符串+列表list
    一、字符串字符串是⼀个有序的字符的集合,⽤于在计算机⾥存储和表示⽂本信息 常用操作二、列表list[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表⼀个元素特征 1、增加操作   追加,数据会追加到尾部 2、删除操作3、修改操作 4、查找操作 如果......
  • 字符串基础(hash,KMP,AC自动机,trie)
    trie树trie树,又叫字典树,就是把字符串的每个字母看做树上的一个节点,若干个字符串组成了一棵trie树。最一般的trie树好像只能搜索字符串,重点是01trie和可持久化trie树和用trie树来建ac自动机(详见AC自动机)。这里着重介绍一下01trie01trie,就是节点代表了数上的二进制位上的数。......
  • 高效遍历:C++中分隔字符串单词的3种方法详解与实例
     概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文提供了清晰......
  • cpp字符串相关
    字符串相关文章参考:[详解-字符串]C++必知必会字符串-string常用各种操作解析-知乎(zhihu.com)C++字符串(string)常用操作总结-知乎(zhihu.com)c++读取字符串和字符的6种函数_c++获取字符串的每个字符-CSDN博客头文件#include<string>定义字符串stringstr;初始......
  • 枚举范围内的字符串
    我写的:publicintVowelStrings(string[]words,intleft,intright){strings="aeiou";intk=0;for(inti=left;i<=right;i++){intx=0,y=0;stringword=words[i];intwordLong......