#includestdio.h
龙湖网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联建站2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
#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;
}
供参考
#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;
}