分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net
/*
* Write a program to remove all comments from a C program.
* Don't forget to handle quoted strings and character constants properly.
* C comments don't nest.
*
* RemoveComment.c - by FreeMan
*/
#include <stdio.h>
#define MAXLINE 1024 /* Max input line size */
char line[MAXLINE]; /* Current input line */
int GetLine(void);
int main()
{
int in_comment, len;
int in_quote;
int t;
in_comment = in_quote = t = 0;
while ((len = GetLine()) > 0)
{
t = 0;
while (t < len)
{
if (line[t] == '"')
{
in_quote = 1;
}
if (!in_quote)
{
if (line[t] == '/' && line[t + 1] == '*')
{
t = t + 2;
in_comment = 1;
}
if (line[t] == '*' && line[t + 1] == '/')
{
t = t + 2;
in_comment = 0;
}
if (in_comment == 1)
{
t++;
}
else
{
printf("%c", line[t]);
t++;
}
}
else
{
printf("%c", line[t]);
t++;
}
}
}
return 0;
}
/* GetLine: Specialized version */
int GetLine(void)
{
int c, i;
extern char line[];
for (i = 0; i < MAXLINE - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
{
line[i] = c;
}
if (c == '\n')
{
line[i] = c;
++i;
}
line[i] = '\0';
return i;
}