大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在纯C中好像没有,但是C++中很容易,你可以去查一下,网上有很多纯C实现的子串求法
公司主营业务:成都网站设计、做网站、成都外贸网站建设公司、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出阿合奇免费做网站回馈大家。
string的substr函数是C++的,是STL库中的,而非纯C的实现,纯C的标准库中没有直接获得子串的方法,自己写很容易
//vc++ 6.0下运行通过
#include stdio.h
#include stdlib.h
char *subs(char *s,int n,int m)
{
char *p;
int i=0;
p=s;
while(*p++ != '\0') //NULL是void *型
{
i++;
}
if(n0||m0||mn||mi)
{
printf("Substring invidal !\n");
exit (0);
}
p=s+n;
*(p+m+1)='\0';//必须'\0',printf函数读到'\0'停止;
return(p);
}
int main(void)
{
char s1[]="The c programing language!";// char *常量
system("cls");
printf("%s\n",subs(s1,5,16));
}
#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=n1; i=n2; i++) {
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;
}
嘿嘿,这是我自己写的一个函数,希望对你有用
//构造截取子串函数,start从零开始.
char
*get_substr(char
*strDest,int
start,int
end)
{
if(startend)
return
NULL;
//如果开始位置大于结束位置则返回
char
*subStr;
//字串指针
subStr=(char*)malloc((end-start+2)*sizeof(char));
int
i;
for(i=start;i=end;i++)
subStr[i-start]=strDest[i];
subStr[end-start+1]='\0';
return
subStr;
}