我坚持这个练习。我不明白为什么下面的代码没有预期的结果。
该程序应该删除评论。在这个程序中,我不考虑字符串和/或字符文字。此外,仅出于测试目的,我在需要删除的点放置空格而不是 NULL。
这里有两个测试:
test /* test123 ok test */
生成为:
test * test123 ok test */
doesnt //work
生成到:
dont ork
另外,如果输入太大,我会遇到分段错误
#include <stdio.h>
#define MAXLENGTH 1000
void removec(char code[],int length);
int main()
{
int i, c;
char line[MAXLENGTH];
for(i=0; (c = getchar()) != EOF; i++)
line[i] = c;
removec(line, i);
return 0;
}
void removec(char line[], int l)
{
int i;
for(i=0; i < l; i++){
//printf("%c", line[i]);
if(line[i] == '/' && line[i+1] == '/'){
while(i != '\n'){
line[i] = ' ';
++i;
}
}
else if(line[i] == '/' && line[i+1] == '*'){
while((line[i] != '*') && (line[i+1] != '/')){
line[i] = ' ';
++i;
}
}
}
printf("%s", line);
}