回 帖 发 新 帖 刷新版面

主题:[讨论]奇怪的问题请大家帮下忙  感谢啊

#include<iostream>
using namespace std;
int index(char *s,char *t)
{
    int i=0;
    int j=0;
    while(s[i]!='\0')
    {
        if(s[i]==t[j])
        {
            i++;
            j++;
        }
        else
        {
            i++;
            j=0;
            continue;
        }
        if(t[j]=='\0')
            return i-j;
    }
    return -1;
}
void main()
{
    char a[]="abcdefg";      //这行写成这样运行没错, 如果把char a[]="abceddefg"改为这样, 运行时就出错!!这什么原因啊 请大家帮帮忙啊
    char b[]="de";
    int i=index(a,b);
    if(i==-1)
        throw "无匹配子集";
    cout<<"在a["<<i<<"]处开始找到b"<<endl;
    
}

回复列表 (共4个回复)

沙发

报错是因为你的throw用法错了……throw哪能直接接字符串……要接一个异常的
你的代码之所以那个用例不过,除了throw出错这个根本原因之外还有个错
你的代码里dde这一段,判断过d相同之后判断源串的d和目标串的e,是不同的,j应该清零,但这里写法不对
写成i+=(j!=0)?0:1;就对了,因为虽然dd不匹配de,但是源串的第二个d并不应该就此被pass掉,而应该跟t[0]重新比一次

板凳

谢谢 [em2]

3 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 摩客天宇 QQ 909065437

4 楼

寻找中国的最优秀的网商领袖精英  
当今世界正经历着全球经济一体化的大潮,中国本土企业也因此面临着前所未有的机遇与挑战。
在这场洗礼中,哪些互联网平台有能力成为世界级的电子商务平台?网商精英要怎样做,才能最终成长为世界级网商精英领袖?
淘宝商盟平台震撼登场,携手淘宝30万商家联盟购物商城。
平台刚刚启动,互联网的网商精英请咨询qq: 908889846 
占领市场第一先机,合力打造网商系统!
淘宝商盟官网   www.taobaosm.com
 http://blog.sina.com.cn/tbsm8
淘宝商盟奖励制度

我来回复

您尚未登录,请登录后再回复。点此登录或注册