c语言查找子串函数 查找子串C语言

C语言编程-阿尔法编程练习题-查找子串?

#includestdio.h

成都创新互联公司专注于大名网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供大名营销型网站建设,大名网站制作、大名网页设计、大名网站官网定制、小程序制作服务,打造大名网络公司原创品牌,更为您提供大名网站排名全网营销落地服务。

#includestdlib.h

int search(char *str,char *substr)

{

/*_________________*/

int c[50],k;

char *p,*q;

int i=0,len=0,lct=1,j;

q=substr;

for(;*q!='\0';q++)

{

len=len+1;

}

p=str;

q=substr;

do

{

if(*p!=*q)

{

p++;

lct++;

}

else

{

while((*q!='\0')(*q==*p))

{

q++;

p++;

lct++;

}

if(*q=='\0')

{

c[i]=lct-len; //用来记录子串出现的位置;

i++;

}

}

q=substr;

}

while(*p!='\0');

if(i==0)

k=-1;

else

k=c[0];

return k;

/*__________________*/

}

int main()

{

char *str="abcdefghijklmn",*substr="def";

int i=0;

i=search(str,substr);

printf("%d\n",i);

return 0;

}

在线等 C语言中,求字符串子串的函数

在纯C中好像没有,但是C++中很容易,你可以去查一下,网上有很多纯C实现的子串求法

string的substr函数是C++的,是STL库中的,而非纯C的实现,纯C的标准库中没有直接获得子串的方法,自己写很容易

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语言查找子字符串

char* search(char* str, char ch)

{

char *pmax, *p, *p1;

int max;

pmax = NULL;

max = 0;

p = str;

while(1)

{

while(*p != NULL *p !=ch) p++;

if(*p== ch)

{

for(p1=p++; *p==ch; p++);

if(p-p1 max)

{

max = p-p1;

pmax = p1;

}

}

}

return pmax;

}

C语言关于寻找字符串中子串函数,不知道错误在哪

compare函数中

ret=*z-*x;

if(*x=='\0')

{

break;

}

有明显的逻辑错误。当x比z短时*x=='\0'为“真”而break了,但这时ret是一个不为'\0'的字符与'\0'的差的int值,而非你需要的-1、0、+1逻辑值。比如z是"abcd",x是"abc",最后ret='d'-'\0'=100,把100返回了,而不是返回需要的+1。问题已指出,你自己改吧!


当前题目:c语言查找子串函数 查找子串C语言
文章转载:http://scyanting.com/article/dooshei.html