重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
void substr(char s[],int n1,int n2)
成都创新互联公司是一家业务范围包括IDC托管业务,网络空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,成都二枢机房,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
{int i;br/char t[20]={\0};
for(i=n1;i=n1+n2;i++)
t=strcat(t,s[i]);
puts(t);
}
这个函数要用到
#includestdio.h
#includestring.h
#includestdio.h
#includestdlib.h
typedef struct hstring
{
char * ch;
int length;
} string;
void substring(string * str1,string str2,int i,int n)
{
if(n0 || nstr2.length-i+1 || i1 || istr2.length)
printf("fail!");
if(str1-ch) free(str1-ch);
if(!n) { /* 我的书里有这部分,你的没有? */
str1-ch = NULL;
str1-length = 0;
} else {
str1-ch=(char*)malloc(n*sizeof(char));
int j;
for(j=0; jn; ++j,++i) {
str1-ch[j]=str2.ch[i-1];
}
str1-length=str2.length;
}
}
int main()
{
string str1; /* str1 的空间是动态分配的 */
string str2 = { /* 目标串 str2 的空间是 已经分配好的 */
"mnpqrxyz",
8
};
/*
string str1,str2;
char s1[5]="abcd";
str1.ch=s1;
str1.length=4;
char s2[5]="mmmm";
str2.ch=s2;
str2.length=4;
*/
substring(str1,str2,1,3);
printf("%s",str1.ch);
return 0;
}
#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;
}