标题:字符串与字符串比较
只看楼主
非凡DZ
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2007-4-6
 问题点数:0 回复次数:1 
字符串与字符串比较
帮忙看一下,当第二个字符串不在第一个字符串中,为什么不输出-1呢,困惑中,谢谢

//字符串与字符串比较
#include<stdio.h>
int mystrsubstring(char *p,char *q);
void main()
{
int n;
char ch1[30],ch2[30],*p,*q;
q=ch1,p=ch2;
printf("请输入第一个字符串:");
gets(ch1);
printf("请输入第二个字符串:");
gets(ch2);
n=mystrsubstring(ch1,ch2);
printf("%d\n",n);
}
int mystrsubstring(char *q,char *p)
{
int i=0,j=0,count=0,flag=1,value;
while(p[i]!='\0')
{
flag=1;
if(p[i]==q[j])
{
flag=0;
count++;
i++;
j++;
}
else
{
if(flag==0)
{
i=0;
j=j-count+1;
}
else
{
j++;
}
}
}
if(p[i]=='\0' && flag==0)
{
value=j-count;
}
else
{
value=-1;
}
return value;
}
搜索更多相关主题的帖子: void include 字符串 
2007-04-26 09:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
abcdefg
ahgd

这样的串,你就不会输出-1
if(p[i]==q[j])//假设此时的p[j]是最后一个字符,这一条件成立,那flag=0.
{
flag=0;
count++;
i++;
j++;
}

倚天照海花无数,流水高山心自知。
2007-04-26 09:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135031-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091986 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved