C语言求子字符串个数

Python013

C语言求子字符串个数,第1张

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

}