Linux_C练习:判断一个字符串是不是另一个字符串的子串;(比如"ab"是"aabcd"的子串)
2018-03-13 00:46
399 查看
#include<stdio.h> #include<stdlib.h> #include<string.h> int com(char *p, char *q, int n, int m) { int i, j; char *tmp = (char *)malloc(sizeof(char) * 20); if(NULL == tmp) { printf("error\n"); exit(1); } char *tmp1 = tmp; char *tmp2 = q; char *tmp3 = p; int flag = 0; if(n < m) { for(i = 0; i <= m - n; ++i ) { q = q + i; for(j = i; j< i + n; ++j) { *tmp++ = *q++; } tmp = tmp1; if(strcmp(tmp, p) == 0) { flag = 1; } q = tmp2; } } if(n > m) { for(i = 0; i <= n - m; ++i ) { p = p + i; for(j = i; j< i + m; ++j) { *tmp++ = *p++; } tmp = tmp1; if(strcmp(tmp,q) == 0) { flag = 2; } p = tmp3; } } if(n == m) { if(strcmp(p, q) == 0) { flag = 3; } } return flag; } int main() { int l, l1; char *p = (char *)malloc(sizeof(char) * 20); char *q = (char *)malloc(sizeof(char) * 20); int flag; if(NULL == p || NULL == q) { printf("NULL error\n"); exit(1); } printf("请输入第一个字符串\n"); scanf("%s", p); printf("请输入第二个字符串\n"); scanf("%s", q); l = strlen(p); l1 = strlen(q); flag = com(p, q, l, l1); switch(flag) { case 0: printf("两字符串互不为对方的子串\n"); break; case 1: printf("第一个字符串为第二个的子串\n"); break; case 2: printf("第二个字符串为第一个的子串\n"); break; case 3: printf("互为子串\n"); break; default: printf("111\n"); break; } return 0; }
相关文章推荐
- 【嵌入式系统学习记录】练习:判断一个字符串是不是另一个字符串的子串;(比如"ab"是"aabcd"的子串)
- StrStr,判断一个字符串是不是另一个字符串的字串,并返回子串的位置
- 判断一个字符串是不是另一个的子串(匹配)
- 判断一个字符串是不是另一个字符串的字串
- C语言:判断一个字符串是否为回问字符串(回文字符串也是一个字符串,但是原字符串和字符串逆序之后一样,比如”abcba","cddc"就是回文字符串
- 判断一个字符串是否是另一个字符串的子串(Implement strStr() )
- C语言 判断一个字符串是不是另一个旋转任意位所得
- 14、JAVA 判断一个数/字符串是不是回文?实现字符串的逆序,如“abcd”变成“dcba”
- C语言判断一个字符串是否是另一个字符串的子串
- 递归算法练习与整理(一):判断一个二叉树是不是另一个二叉树的的子结构
- Java——String练习1:将一个字符串"abcd_itcast"按照长度由长到短打印出来
- 怎么判断一个字符串是另一个的子串
- 392.leetcode Is Subsequence (medium)[判断一个字符串是否是另一个字符串的子串]
- 判断一个字符串是否为另一个字符串的子串
- 给一个很长的字符串str 还有一个字符集比如"abc" 找出str 里包含"abc"的最短子串。要求O(n)
- php判断一个字符串包含另一个字符串
- 关于javascript中判断一个字符串是否包含另一个字符串
- 判断输入的字符串是不是一个有效的IP地址
- php如何判断一个字符串是否包含另一个字符串
- 判断一个字符串是否为另外一个字符串的子串