c:
#include <stdio.h>#include <stdlib.h>
#include <math.h>
#include <string.h>
int countsub(char *str, char *ss) {
int len = strlen(str), index = 0, max = 0
int *maxStr = (int*)malloc(sizeof(int) * len)
for (index = 0 index < len ++index) {
maxStr[index] = 0
}
index = 0
for (int i = 0 str[i] != '\0' ++i) {
int j = 0
for ( ss[j] != '\0' && str[i + j] != '\0' && ss[j] == str[i + j] ++j)
if (j > 0 && ss[j] == '\0') {
maxStr[index]++
i += j - 1
} else {
index++
}
if (maxStr[index] > max)
max = maxStr[index]
}
return max
}
int main() {
char s1[1000] = { 0 }, s2[100] = { 0 }
gets(s1)
gets(s2)
printf("%d\n", countsub(s1, s2))
return 0
}
#include <stdio.h>#include <stdlib.h>
#include <string.h>
char *sub(char *s,int st,int len)
{char *s1
int i
s1=(char*)malloc(len)
for(i=0i<leni++)s1[i]=s[st+i-1]
s1[i]='\0'
return s1
}
int main()
{int n,i,j
char s[200]
scanf("%d%*c",&n)
while(n--)
{printf("input a string:")
gets(s)
printf("i=")
scanf("%d",&i)
printf("j=")
scanf("%d%*c",&j)
if(i+j>strlen(s))printf("Error\n")
else printf("%s\n",sub(s,i,j))
}
return 0
}