#includestdio.h
龍湖網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
#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?的空間是動態(tài)分配的?*/?
string?str2?=?{?/*?目標串?str2?的空間是?已經(jīng)分配好的?*/?
"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;
}
供參考
#include?stdio.h
#include?string.h
void?get_sub_str(char?*src,?char*?dst)
{
int?max_start?=?-1,?max_len?=?0;
int?start=-1,?len=0;
int?i;
for(i?=?0;?src[i];?i?++)
{
if(src[i]?=?'9'??src?[i]?=?'0')
{
if(start?!=?-1)
{
if(src[i]?==?src[i-1]?+?1)?continue;
len?=?i-start;
if(len??max_len)max_start?=?start,?max_len?=?len;
}
start?=?i;
}
else?if(start?!=?-1)
{
len?=?i-start;
if(len??max_len)max_start?=?start,?max_len?=?len;
start?=?-1;
}
}
if(start?!=?-1)
{
len?=?i-start;
if(len??max_len)max_start?=?start,?max_len?=?len;
start?=?-1;
}
if(max_len)?memcpy(dst,?src+max_start,?max_len);
dst[max_len]?=?0;
}
int?main()
{
char?buf[1024];
char?sub[1024];
gets(buf);
get_sub_str(buf,?sub);
puts(sub);
return?0;
}