Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Си:Регулярное выражение

46K
10 ноября 2010 года
znatik
4 / / 13.04.2009
Здравствуйте.Нужно написать программу,которая ищет комментарии в любом си-шном листинге и выводит их текст на экран и в текстовый файл, и написать регулярное выражение,описывающие эту программу.Программа написана,ниже ее код,а как написать регулярное выражение к ней,я не понимаю.Подскажите,пожалуйста.

#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;

}
29K
11 ноября 2010 года
Енот_в_Засаде
224 / / 09.11.2010
 
Код:
string pattern = @"//.*|/\*.*\*/";


определяет комментарии вида:
// текст комментария
/*текст комментария*/

к сожалению не работает с многострочными комментариями типа:
/*текст
многострочного
комментария
*/
392
11 ноября 2010 года
cronya
421 / / 03.01.2009
 
Код:
string pattern = @"//.*|/\*.*\*/";




к сожалению не работает с многострочными комментариями типа:
/*текст
многострочного
комментария
*/

Все всегда работает, просто надо обработать условия

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог