博客
关于我
真题演练-字符串匹配
阅读量:714 次
发布时间:2019-03-21

本文共 1555 字,大约阅读时间需要 5 分钟。

为了判断第二个输入的字符串是否是第一个字符串的子串,我们可以按照以下步骤进行实现:

  • 读取输入:使用 gets() 函数读取两个字符串A和B,确保输入的末尾没有多余的换行符。
  • 函数实现:编写一个函数 IsSubString,该函数通过双重循环检查字符串B是否出现在字符串A的任何位置。
  • 输出结果:根据函数返回的值,输出 "Yes" 或 "No"。
  • 代码实现

    #include 
    #include
    // 函数功能:判断b是否是a的子串,是则返回1,否则返回0int IsSubString(char a[], char b[]) { int len_a = strlen(a); int len_b = strlen(b); // 如果b的长度为0,视为是子串 if (len_b == 0) { return 1; } // 只有当a的长度足够长才能有substrings for (int i = 0; i <= len_a - len_b; ++i) { int j = 0; while (j < len_b) { if (a[i + j] != b[j]) { goto end; // 跳到检查下一个i } ++j; } return 1; // 跳出标记end,继续下一个i循环end: // 继续检查下一个i } return 0;}// 主函数,执行输入输出和判断int main() { char a[80]; char b[80]; // 读取并去除末尾的换行符 puts("Input the first string: "); gets(a); size_t end_pos = strrpos(a, '\n'); if (end_pos != STRINGEND) { a[end_pos + 1] = '\0'; } puts("Input the second string: "); gets(b); end_pos = strrpos(b, '\n'); if (end_pos != STRINGEND) { b[end_pos + 1] = '\0'; } puts("Is substr, output \"Yes\" or \"No\": "); int result = IsSubString(a, b); if (result) { puts("Yes"); } else { puts("No"); } return 0;}

    代码解释

  • 读取输入:使用 gets() 读取输入字符串,并使用 strrpos 方法去除末尾的换行符,确保字符串长度正确。
  • 函数实现:函数 IsSubString 使用双重循环来检查字符串B是否存在于字符串A的任何位置。
    • 外层循环遍历字符串A的每个可能的起始位置。
    • 内层循环检查从当前位置开始的连续字符是否与字符串B匹配。
    • 如果找到匹配,返回1;否则,继续检查其他可能的位置。
  • 输出结果:根据函数返回的值输出 "Yes" 或 "No"。
  • 这种方法确保了在判断是否为子串时的效率和准确性,能够处理所有符合条件的输入情况。

    转载地址:http://rdbrz.baihongyu.com/

    你可能感兴趣的文章
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>
    MySQL与Informix数据库中的同义表创建:深入解析与比较
    查看>>
    mysql与mem_细说 MySQL 之 MEM_ROOT
    查看>>
    MySQL与Oracle的数据迁移注意事项,另附转换工具链接
    查看>>
    mysql丢失更新问题
    查看>>