//串定位
public int IndexOf(SeqString s, int starpos)
{
SeqString sub = this.SubString(starpos, this.GetLength() - starpos);
if (sub.GetLength() < s.GetLength())
{
MessageBox.Show("找不到需要的字符串!");
return -1;
}
int i, j, v;
i = 0; j = 0;
while (i < sub.GetLength() && j < s.GetLength())
{
if (sub.data[i] == s.data[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if (j == s.GetLength())
v = i - s.GetLength() + starpos;
else
v = -1;
return v;
}
入参SeqString s为空了。
用控制台程序这样写可以用啊,为啥改成窗体就不行了
@想和你一日三餐: 。。。。这是你自己前面调用的问题了。
@Daniel Cai: 你好,你能帮我看看我的代码吗?我是新手才开始写这个,如果可以的话,不胜感激,不管怎么样还是谢谢你!
@想和你一日三餐: 没有上下文没办法看啊。你至少要把怎么调到这个方法的逻辑代码给贴出来吧。
@Daniel Cai: http://pan.baidu.com/s/1bQU8yE
@想和你一日三餐:
OneToHundredA.cs中字段tenanswer没有赋值
@Daniel Cai: 我上面不是有一个调用Hundred(daren)函数吗,在那个函数里面有赋值 啊,,对了,是不是我那个question.txt文件的放置位置不对,该放在那个文件夹啊
@想和你一日三餐: 这个写法。。。。
你再看下这里
if (gameInterface.radioButton1.Checked && gameInterface.isClick == 1)
answer = new SeqString("A".ToCharArray());
else if (gameInterface.radioButton2.Checked && gameInterface.isClick == 1)
answer = new SeqString("B".ToCharArray());
else if (gameInterface.radioButton3.Checked && gameInterface.isClick == 1)
answer = new SeqString("C".ToCharArray());
else if (gameInterface.radioButton4.Checked && gameInterface.isClick == 1)
answer = new SeqString("D".ToCharArray());
如果4个判断都没进去后你answer就为null了
@Daniel Cai: get,多谢,那个改正以后,点击不会显示东西,是因为txt文件的位置不对,没有读取到文字吗?(附带问一句,天王盖地虎,)
@想和你一日三餐: 这个只能你自己去debug了,打个断点很容易就知道执行是否符合预期。