首页 > 代码库 > 利用指针函数编写一个求子字符串的函数

利用指针函数编写一个求子字符串的函数

#include<stdio.h>
#include<string.h>
#include<malloc.h>
//定义一个指针型函数substr
char *substr(char *dest,char *src,int begin,int len)
{
    int srclen=strlen(src);                 //取源字符串长度
    if(begin>srclen||!srclen||begin<0||len<0)
    dest[0]=‘\0‘;       //当取子串的开始位置超过源串长度,或源串长度为0,或开始位置和子串的长度为从开始位置
//子串长度为非法(小于0)时,目标串置为空串
    else
    {
        if(!len||(begin+len)>srclen)
        len=srclen-begin+1;      //当字符串长度为0或开始位置加字串长度大于源长度时,调整子串为从开始位置到源
        //串结束的所有字符
        memmove(dest,src+begin-1,len);              //调用库函数memmove将子串从源串中移到目标串中
        dest[len]=‘\0‘;
    }
    return dest;
}


void main()
{
    char *dest;
    char src[]="C Programming Languege";
    if((dest=(char *)malloc(80))==NULL)
    {
        printf("no memory\n");
        exit(1);
    }
    printf("%s\n",substr(dest,src,15,4));
    printf("%s\n",substr(dest,src,15,0));
    free(dest);
}

利用指针函数编写一个求子字符串的函数