Си:Регулярное выражение
#include <stdio.h>
#include <stdlib.h>
FILE *fp;
FILE *output;
int i=0;
int j=0;
int k=0;
char filename[20];
char symbol[100];
char ch,*s;
int Answer_for_Question_Life_Univers_and_All();
int main(void)
{
Answer_for_Question_Life_Univers_and_All();
}
int Answer_for_Question_Life_Univers_and_All()
{
printf("input filename\n->");
scanf("%s.",&filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("The file %s was not opened, try again\n",filename);
}
else{
printf("The file %s was opened\n",filename);
}
while (!feof(fp))
{
ch = fgetc(fp);
if(ch=='\n')
{
i++;
}
if(ch=='/')
{
ch = fgetc(fp);
if(ch=='/')
{
printf("%d ",i);
do
{
ch = fgetc(fp);
printf("%c",ch);
symbol[j]=ch;
j++;
}while(ch!='\n');
i++;
}
if(ch=='*')
{
printf("%d ",i);
do
{
ch = fgetc(fp);
symbol[j]=ch;
j++;
if(ch=='\n')
{
i++;
}
printf("%c",ch);
}while(ch!='*');
printf("\n");
symbol[j]=' ';
}
}
}
fflush (stdin); getchar();
fclose(fp);
output = fopen("d:\\test.txt", "w+");
for(int i=0;i<j;i++)
{
fprintf(output,"%c",symbol);
}
return 0;
}
Код:
string pattern = @"//.*|/\*.*\*/";
определяет комментарии вида:
// текст комментария
/*текст комментария*/
к сожалению не работает с многострочными комментариями типа:
/*текст
многострочного
комментария
*/
Цитата: Енот_в_Засаде
Код:
string pattern = @"//.*|/\*.*\*/";
к сожалению не работает с многострочными комментариями типа:
/*текст
многострочного
комментария
*/
Все всегда работает, просто надо обработать условия