c语言中 编程实现求子串函数

Python012

c语言中 编程实现求子串函数,第1张

#include <stdio.h>

#include <stdlib.h>

char *substr(const char *s,int n1,int n2)/*从s中提取下标为n1~n2的字符组成一个新字符串,然后返回这个新串的首地址*/

{

char *sp=malloc(sizeof(char)*(n2-n1+2))

int i,j=0

for (i=n1i<=n2i++) {

sp[j++]=s[i]

}

sp[j]=0

return sp

}

int main(void)

{

char s[80],*sub

scanf("%s",s)/*输入原字符串s*/

sub=substr(s,0,5)/*提取s[0]~s[5]元素组成新子串,并保存到sub中*/

printf("substr:%s\n",sub)/*输出sub*/

free(sub)/*释放sub所占用的空间*/

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

}