如何用C语言实现一个字符串的截取 函数原型是这样的char *subString(char *str,int star,int len);


char *subString(char *str,int star,int len);

这个原型不好,返回的子串放到什么地方呢?
i.如果用malloc分配的州握裂册闭话,函数调用者忘记free就会有内存泄露
ii.如果放到源串,就会破环源串皮纳

char *subString(char *dst,char *src,int star,int len);
#include <颤帆stdio.h>
#include <茄宏雹stdlib.h>
char *subString(char *str,int star,int len)
{
char *st=malloc(sizeof(char)*(len+1));
int i;
if (st) {
st[len]='\0';
for (i=0;i<len;i++)
st[i]=str[star-1+i];
}
return st;
}
int main(void)
{
char st[]="绝枣abcdefg",*p;
puts(p=subString(st,1,4));
free(p);
return 0;
}
 腔罩 编程学蚂告吧:c语言实现SubString

 闷圆明 本文链接:http://www.bcx8.com/280.html