C语言:字符串子串判断
来源:互联网 发布:java编程视频教程 编辑:程序博客网 时间:2024/05/16 11:32
突然想起小学期里字符串子串判断的题目,之前的写法是用循环匹配,总感觉写法欠妥
试着用递归写了一次子串匹配,就当换个思路吧
运行图:
代码:
#include<stdio.h>void judge_strings(char* string,char* subString,int p_string,int p_subString,int &result){//每次对当前位置的string和subString进行字符匹配,如果相同就继续循环,不同就退出 if (subString[p_subString] == '\0') { result = 1; return; } if (string[p_string] == subString[p_subString]) { judge_strings(string, subString, p_string + 1, p_subString + 1,result); }}int main(){ char string[100]; //存储较长的字符串 char subString[20]; //存储子串用来判断 int i_string = 0; //长字符串的计数变量 int i_subString = 0;//子串的计数变量 int result = 0; //匹配结果 puts("\tInput a long string:"); scanf("%s", string); puts("\tInput a short one:"); scanf("%s", subString); while (string[i_string] != '\0')//长字符串循环 { if (string[i_string] == subString[i_subString])//i_subString确认相等的时候应该等于0 { judge_strings(string, subString,i_string,i_subString,result); if (result == 1) break; } ++i_string; i_subString = 0;//保证每次循环subString的计数变量一直为0 } //输出结果 if (result == 1) { printf("[%s] IS a substring of [%s].\n", subString,string ); } else { printf("[%s] is NOT a substring of [%s].\n",subString,string); } getchar(); getchar(); return 0;}
阅读全文
0 0
- C语言:字符串子串判断
- C语言判断一个字符串是否是另一个字符串的子串
- C语言字符串操作--删除子串
- C语言字符串操作--删除子串
- c语言替换字符串中的子串
- 字符串判断子串
- 【C语言】 提取子字符串
- C语言 判断回文字符串
- 【c语言】判断回文字符串
- C/C++编程题之判断字符串子串
- Linux下C语言实现字符串子串替换
- Linux下C语言实现字符串子串替换
- C语言编写 删除字符串中的子串
- C语言——删除字符串中的指定子串
- C语言 查找字符串子串 返回位置
- (c语言)在字符串中删除子串
- OpenJudge百炼-2744-子串-C语言-字符串处理
- c语言:查找两个字符串的最大公共子串
- vue-router的使用
- final、内部类、抽象类、接口
- java中经常用到的自动装箱和自动拆箱
- 1.5Java函数(方法)
- 第十篇:ndk项目实战之Androidstudio开发经验总结
- C语言:字符串子串判断
- java基础(五)之JAVA编码规范
- poj2387 Til the Cows Come Home(dijkstra)
- 数据库设计中应注意的问题
- 第十一篇:C代码调用Java代码之项目实战
- HDU 4002 数论
- springboot学习笔记五
- BDKR_hashz字符串(自己的理解)
- hdu 2680 Choose the best route【dijstra+反向建图】