首页 > 代码库 > 利用指针函数编写一个求子字符串的函数
利用指针函数编写一个求子字符串的函数
#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);
}
#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);
}
利用指针函数编写一个求子字符串的函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。