【嵌入式系统学习记录】练习:判断一个字符串是不是另一个字符串的子串;(比如"ab"是"aabcd"的子串)
2018-03-13 23:15
453 查看
#include<stdio.h> #include<stdlib.h> #include<string.h> char *jungle(char *p1, char *p2, int size1, int size2) { int i, n, m; char *s1 = "NO!"; char *s2 = "YES!"; /* char *temp = (char *)malloc(sizeof(char) * 50); char *temp2 = temp; if(NULL == temp) { printf("malloc failure!\n"); exit(1); }*/ if(size1 <= size2) { return s1; } else { for(n = 0; n < size1 - size2 + 1; ++n) { /* for(i = 0; i < size2; ++i) { *temp++ = *p1++; } temp = temp2; if(strcmp(temp, p2) != 0) { temp++; for(m = 0; m < size2; ++m) { p1--; } p1++; *temp = *temp2; p1 = p1 -size2 + 1; } else { return s2; break; }*/ if(strncmp(p2, p1+n, size2) == 0)//strncmp可以实现一定个数的字符串相比较,省去了注释掉的代码,减少了很多代码量 { return s2; } } return s1; } } int main() { int length1, length2; char *father = (char*)malloc(sizeof(char) * 50); char *son = (char*)malloc(sizeof(char) * 50); printf("please enter a long words:\n"); scanf("%s",father); printf("please enter a short words:\n"); scanf("%s",son); if(NULL == father || NULL == son) { printf("malloc failure!\n"); exit(1); } length1 = strlen(father); length2 = strlen(son); printf("%s",jungle(father, son, length1, length2));//通过指针传参和返回结果 free(father);//malloc之后要通过手动释放内存 free(son); return 0; }
相关文章推荐
- Linux_C练习:判断一个字符串是不是另一个字符串的子串;(比如"ab"是"aabcd"的子串)
- 【嵌入式系统学习记录】习题:输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来。比如:帧头和帧尾分别是head和tail 字符串”asdheadhauboiso
- StrStr,判断一个字符串是不是另一个字符串的字串,并返回子串的位置
- 【嵌入式系统学习记录】练习:编写一个函数,求字符数组的前n个字符中最大字符的地址并返回该地址,字符数组和n作为函数的参数;
- 【嵌入式系统学习记录】练习:把句子中的单词倒序;(输入"i am from shanghai",输出"shanghai from am i")
- 判断一个字符串是不是另一个的子串(匹配)
- 判断一个字符串是不是另一个字符串的字串
- 怎么判断一个字符串是另一个的子串
- Python学习——判断一个字符串是不是回文
- 392.leetcode Is Subsequence (medium)[判断一个字符串是否是另一个字符串的子串]
- C语言 判断一个字符串是不是另一个旋转任意位所得
- 每天学习一算法系列(30)(给一个很长的字符串str 还有一个字符集比如{a,b,c} 找出str 里包含{a,b,c}的最短子串。要求O(n).)
- 判断一个字符串是否为另一个字符串的子串
- 【嵌入式系统学习记录】练习题:一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数。
- 递归算法练习与整理(一):判断一个二叉树是不是另一个二叉树的的子结构
- C语言:判断一个字符串是否为回问字符串(回文字符串也是一个字符串,但是原字符串和字符串逆序之后一样,比如”abcba","cddc"就是回文字符串
- 给一个很长的字符串str 还有一个字符集比如"abc" 找出str 里包含"abc"的最短子串。要求O(n)
- 【嵌入式系统学习记录】练习题:设计一个洗牌发牌的程序;(随机产生52个不同的数)
- 14、JAVA 判断一个数/字符串是不是回文?实现字符串的逆序,如“abcd”变成“dcba”
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世"