求子串函数c语言 c++求子串

自己写的C语言求子串函数求解答#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;
}
C语言求子串供参考
#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(lenmax_len)max_start = start, max_len = len;
}
start = i;
}
else if(start != -1)
{
len = i-start;
if(lenmax_len)max_start = start, max_len = len;
start = -1;
}
}
if(start != -1)
{
len = i-start;
if(lenmax_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;
}
c语言中 编程实现求子串函数#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;
}
C语言之求字符串的子串#include stdio.h
#include stdlib.h
#include string.h
char *sub(char *s,int st,int len)
{char *s1;
int i;
s1=(char*)malloc(len);
for(i=0;ilen;i)s1[i]=s[st i-1];
s1[i]='\0';
return s1;
}
int main()
{int n,i,j;
char s[200];
scanf("%d%*c",n);
while(n--)
{printf("input a string:");
gets(s);
printf("i=");
scanf("%d",i);
printf("j=");
scanf("%d%*c",j);
if(i jstrlen(s))printf("Error\n");
else printf("%s\n",sub(s,i,j));
}
return 0;
}
【求子串函数c语言 c 求子串】求子串函数c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c求子串、求子串函数c语言的信息别忘了在本站进行查找喔 。

    推荐阅读