当前位置: 首页 > news >正文

C语言--寻找子串的下标

输入: 一个源字符,一个子串
输出: 子串的下标

代码

思路: 首次进入字符串,使用startIndex记录子串起始位置。
cnt会记录相同的字符数,当cnt等于子串长度,说明是原字符串的子串。

int finSubString(char *str, char *substr) {
    int cnt = 0;
    int startIndex = -1;
    int inStr = 0;
    int len1 = strlen(str);
    int len2 = strlen(substr);

    if (len1 < len2) {
        return -1;
    }
    for (int i = 0; str[i] != '\0'; i++) {
        if (str[i] == substr[cnt]) {
            cnt++;
            if (!inStr) {
                inStr = 1;
                startIndex = i;
            }
            if (cnt == len2) {
                return startIndex;
            }
        } else {
            startIndex = -1;
            inStr = 0;
            cnt = 0;
        }
    }
    return -1;
}

运行

int main() {
    char str[] = "hello aaa ccc bbb d2222";
    char substr[]="ccc";
    char substr2[]="ccc1";
    int index = finSubString(str, substr);
    int index2 = finSubString(str, substr2);
    printf("%d\n", index);
    printf("%d\n", index2);
    return 0;
}

在这里插入图片描述

http://www.dtcms.com/a/109494.html

相关文章:

  • 优雅的理解神经网络中的“分段线性单元”,解剖前向和反向传播
  • 量子计算与经典计算的拉锯战:一场关于计算未来的辩论
  • 3.2/Q2,GBD数据库最新文章解读
  • 开源可视化大屏go-view前后端安装
  • 文献分享: DESSERT基于LSH的多向量检索(Part2——理论保证的证明)
  • 《K230 从熟悉到...》识别机器码(AprilTag)
  • OpenHarmony子系统开发 - 安全(十)
  • 【网络安全实验】PKI(证书服务)配置实验
  • 操作 Office Excel 文档类库Excelize
  • Python项目-基于Python的音乐推荐系统
  • 无需预对齐即可消除批次效应,东京大学团队开发深度学习框架STAIG,揭示肿瘤微环境中的详细基因信息
  • 在网络中加入预训练的多层感知机(MLP)有什么作用?
  • BT-Basic函数之首字母R
  • Opencv之dilib库:表情识别
  • 【Linux】-进程的控制(下)
  • 安卓中app_process运行报错Aborted,怎么查看具体的报错日志
  • 光谱成像技术在海洋/管道漏油(溢油)监测中的应用
  • 化工行业如何通过定制化工作流自动化实现25-30%成本优化?
  • Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念
  • Maps,
  • Computer VIsion1
  • android开发:zxing-android-embedded竖屏扫描功能
  • 四门冷柜、操作台、卧式冰柜区别及运输注意事项
  • 什么是 StarRocks?核心优势与适用场景解析
  • 【深度学习】嘿马深度学习笔记第13篇:卷积神经网络,学习目标【附代码文档】
  • 2025软件供应链安全指南︱构筑企业安全积极防御体系实践
  • U盘实现——BOT 常用命令
  • 无线通信技术(三):5G NR通信频带划分与应用场景
  • Spring Boot后端开发全攻略:核心概念与实战指南
  • python大数据相关职位,还需要学习java哪些知识