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://lswzjz.com/article/dooshei.html