来,做道题目试试看,看看自己是不是高手

先打个广告: http://www.cnblogs.com/aiasted 我的博客

请看题目:

大家都知道 C# 使用 // 或 /* */ 作为注释

提问,怎样才能删除一个cs文件中所有的,各种形式的注释

特别提示: 当二种注释一起出现时的处理,二种注释同时出现,那一种有效自己开个VS试吧

结果参照:
要求有完整的代码,界面就不需要了,不过至少要有打开和保存文件吧
使用文件类来操作,输入原文件,输出新文件

如果您从来没写过此类算法,那么测试将有效,你可以参照以下标准评分:

10分钟内写完 你一定是个绝顶高手,而且打字速度很快

30分钟内写完 算是个高手吧,至少算法基础比较熟悉

60分钟内写完 一般吧你

XXX小时能够写完 你可以算是个程序员吧

不会写??? 你别搞程序了,智商不够高

代码就不用贴出来了,影响其它人,自己凭着良心评分吧

最后,此方法大约共 16 行代码可搞定

我用VC,边看动画边写,用了1个小时,我是个白痴..555...
---------------------------------------------------------------

新写了个,20分钟,刚测试了一下,和你的结果一样;和我原来写的词法分析的算法一样;你可以再试试

char[] code = textBox1.Text.ToCharArray();
string newcode = "";
char c = '\0';

for (int i=0;i

  1<code.length;i++){ &&tmp.length="" ')break;="" '){="" )break;="" ){="" +="c.ToString();" ;="" c="code[i];" i++;="" if(c="/" newcode="" string="" tmp="" while(i<code.length-1){="" }="" }else="" 多行注解="" 注解="">=4){   
  2if(tmp.Substring(tmp.Length-1,1)=="*")   
  3break;   
  4}   
  5tmp += c.ToString();   
  6}   
  7}else   
  8if(c=='/'){ //单行注解   
  9while(i<code.length-1){ #region="" '):="" )break;="" +="c.ToString();" -="" ;="" \---------------------------------------------------------------="" button1_click(object="" c="code[i];" c0="str0.ToCharArray();" c1="new" case('="" case(removecscomments.plaintext):="" char[]="" char[n],="" char[n];="" current="" e)="" i="0;" i++;="" i,="" if="new" if(c="\n" int="" int[]="" int[n];="" j,="" loop="" n="str0.Length;" newcode="" plaintext="" private="" s="RemoveCsComments.PlainText;" s,="" sender,="" status="" str0="TextBox1.Text;" string="" switch="" switch(c0[i+1])="" switch(c0[i])="" switch(s)="" system.eventargs="" textbox2.text="newcode;" void="" while(i<n)="" {="" }="" }else="" }else{="" 恢复行注解的回车="" 楼主的程序我测过了,全部32个testcase错了4个=""> CommentDoubleSlash   
 10iF[i] = RemoveCsComments.CommentDoubleSlash;   
 11i++;   
 12iF[i] = RemoveCsComments.CommentDoubleSlash;   
 13i++;   
 14s = RemoveCsComments.CommentDoubleSlash;   
 15break;   
 16#endregion PlainText -&gt; CommentDoubleSlash   
 17}   
 18case('*'):   
 19{   
 20#region PlainText -&gt; CommentSlashStar   
 21iF[i] = RemoveCsComments.CommentSlashStar;   
 22i++;   
 23iF[i] = RemoveCsComments.CommentSlashStar;   
 24i++;   
 25s = RemoveCsComments.CommentSlashStar;   
 26break;   
 27#endregion PlainText -&gt; CommentSlashStar   
 28}   
 29default:   
 30{   
 31#region PlainText / PlainText   
 32iF[i] = RemoveCsComments.PlainText;   
 33i++;   
 34s = RemoveCsComments.PlainText;   
 35break;   
 36#endregion PlainText / PlainText   
 37}   
 38}   
 39break;   
 40#endregion PlainText /   
 41case('@'):   
 42#region PlainText @   
 43switch(c0[i+1])   
 44{   
 45case('"'):   
 46#region PlainText -&gt; StringCS   
 47iF[i] = RemoveCsComments.StringCS;   
 48i++;   
 49iF[i] = RemoveCsComments.StringCS;   
 50i++;   
 51s = RemoveCsComments.StringCS;   
 52break;   
 53#endregion PlainText -&gt; StringCS   
 54default:   
 55#region PlainText @ PlainText   
 56iF[i] = RemoveCsComments.PlainText;   
 57i++;   
 58s = RemoveCsComments.PlainText;   
 59break;   
 60#endregion PlainText @ PlainText   
 61}   
 62break;   
 63#endregion PlainText @   
 64case('"'):   
 65#region PlainText -&gt; StringC   
 66iF[i] = RemoveCsComments.StringC;   
 67i++;   
 68s = RemoveCsComments.StringC;   
 69break;   
 70#endregion PlainText -&gt; StringC   
 71default:   
 72#region PlainText   
 73iF[i] = RemoveCsComments.PlainText;   
 74i++;   
 75s = RemoveCsComments.PlainText;   
 76break;   
 77#endregion   
 78}   
 79  
 80break;   
 81#endregion PlainText   
 82case(RemoveCsComments.CommentSlashStar):   
 83#region CommentSlashStar   
 84switch(c0[i])   
 85{   
 86case('*'):   
 87#region CommentSlashStar *   
 88switch(c0[i+1])   
 89{   
 90case('/'):   
 91{   
 92#region CommentSlashStar -&gt; PlainText   
 93iF[i] = RemoveCsComments.CommentSlashStar;   
 94i++;   
 95iF[i] = RemoveCsComments.CommentSlashStar;   
 96i++;   
 97s = RemoveCsComments.PlainText;   
 98break;   
 99#endregion CommentSlashStar -&gt; PlainText   
100}   
101default:   
102{   
103#region CommentSlashStar * CommentSlashStar   
104iF[i] = RemoveCsComments.CommentSlashStar;   
105i++;   
106s = RemoveCsComments.CommentSlashStar;   
107break;   
108#endregion CommentSlashStar * CommentSlashStar   
109}   
110}   
111break;   
112#endregion PlainText /   
113default:   
114#region CommentSlashStar   
115iF[i] = RemoveCsComments.CommentSlashStar;   
116i++;   
117s = RemoveCsComments.CommentSlashStar;   
118break;   
119#endregion   
120}   
121  
122break;   
123#endregion CommentSlashStar   
124case(RemoveCsComments.CommentDoubleSlash):   
125#region CommentDoubleSlash   
126switch(c0[i])   
127{   
128case((char)10):   
129#region CommentDoubleSlash -&gt; PlainText   
130if(c0[i-1]==(char)13)   
131iF[i-1] = RemoveCsComments.PlainText;   
132iF[i] = RemoveCsComments.PlainText;   
133i++;   
134s = RemoveCsComments.PlainText;   
135break;   
136#endregion   
137default:   
138#region CommentDoubleSlash   
139iF[i] = RemoveCsComments.CommentDoubleSlash;   
140i++;   
141s = RemoveCsComments.CommentDoubleSlash;   
142break;   
143#endregion   
144}   
145  
146break;   
147#endregion CommentDoubleSlash   
148case(RemoveCsComments.StringC):   
149#region StringC   
150switch(c0[i])   
151{   
152case((char)92):   
153#region StringC -&gt;-&gt; StringC   
154iF[i] = Rem</code.length-1){></code.length;i++){>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus