关于一个C#程序的两个问题【不显示与异常】

1、请问这个图片显示问题怎么解决?2、能不能帮我看看下面的代码,哪里出错了,为什么什么都不显示?privatevoid开始分析ToolStripMenuItem_Clic... 1、请问这个图片显示问题怎么解决?
2、能不能帮我看看下面的代码,哪里出错了,为什么什么都不显示?

private void 开始分析ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
listView1.Visible = true;
int i = 1;
char[] ch = richTextBox1.Text.ToCharArray();
for (int j = 0; j <=ch.Length ;j++ )
{
string[] ana=new string[100];
if (ch[j].ToString() =="") break;
else
{
int k = 0;
do
{

ana[k] =ch[j].ToString();
k++;
j++;
} while (ch[j].ToString() == "");

string a = Convert.ToString(i++);
ListViewItem item = new ListViewItem(a);
if (ana[k+1] == "main" || ana[k] == "int" || ana[k] == "float" || ana[k] == "printf" || ana[k] == "if" || ana[k] == "for" || ana[k] == "while" || ana[k] == "do" || ana[k] == "return" || ana[k] == "break" || ana[k] == "continue" || ana[k] == "char" || ana[k] == "string" || ana[k] == "void")
{
item.SubItems.Add(ana[k]);
item.SubItems.Add("关键字");

}
else if (ana[k] == "+" || ana[k] == "-" || ana[k] == "==" || ana[k] == "*" || ana[k] == "/" || ana[k] == "<" || ana[k] == ">" || ana[k] == "<=" || ana[k] == ">=" || ana[k] == "=" || ana[k] == "!=" || ana[k] == "++" || ana[k] == "--")
{
item.SubItems.Add(ana[k]);
item.SubItems.Add("运算符");

}
else if (ana[k] == "(" || ana[k] == ")" || ana[k] == "[" || ana[k] == "]" || ana[k] == "{" || ana[k] == "}" || ana[k] == "," || ana[k] == ":" || ana[k] == ";" || ana[k] == "\"" || ana[k] == "*/" || ana[k] == "/*")
{
item.SubItems.Add(ana[k]);
item.SubItems.Add("介符");

}
else
{
item.SubItems.Add(ana[k]);
item.SubItems.Add("标识符");
}
listView1.Items.Add(item);

}

} MessageBox.Show("分析完毕!");

}
}
展开
 我来答
lwd6808
2011-12-02 · TA获得超过115个赞
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:134万
展开全部
for (int j = 0; j <=ch.Length ;j++ )
{
string[] ana=new string[100];
if (ch[j].ToString() =="") break;
else
{
int k = 0;
do
{

ana[k] =ch[j].ToString();
k++;
j++;
} while (ch[j].ToString() == "");
这段代码里,里层的do循环里改变了外层循环变量j的值,使其超出了字符数组ch的下标。改成以下代码试试:
for(int m=0;m<=j;m++)
{
ana[k] =ch[m].ToString();
k++;
if(ch[m].ToString()!="")
break;
}
没仔细看,不知道你程序的最终效果是什么。但这段代码肯定是错的,希望对你有用。
追问
我要实现的功能是显示出我分析的结果,比如显示出“1   main     关键字”   这样的。但是现在就是中间的那个显示有误,我截了图,你看看。
我觉得是字符串的处理问题,因为用ff的时候理论上它只会显示一个字符,现在是一个都不显示==,而用ana[k]的时候理论上它也只会显示一个字符,可它只显示第一个字符==。
追答
变量ff赋为空值之后,在哪里还赋了值呢?
jtzcc
2011-12-02
知道答主
回答量:21
采纳率:0%
帮助的人:13.1万
展开全部
for (int j = 0; j <=ch.Length ;j++ )
应该是j<ch.Length
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhongbaifa
2011-12-02 · 超过12用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:36.1万
展开全部
没细看,关于程序风格,你的程序要好好改改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式