新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
char* substr(char *src,int start,int end){
创新互联建站是一家专业提供洛阳企业网站建设,专注与成都网站设计、做网站、H5技术、小程序制作等业务。10年已为洛阳众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
if(end=start) return NULL;
if (start=strlen(src)) return NULL;
char *p=src+start;
*(p+end)=0;
return p;
}
void substr(char s[],int n1,int n2)
{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
#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;
}
#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;
}