Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2012, 00:30   #1
LordJohn
 
Регистрация: 06.09.2012
Сообщений: 4
По умолчанию Каверзная задача на строки(с++)

Доброго времени суток. Задача: дан файл, в нем содержится какой-то текст. Требуется в этом тексте удалить все фрагменты, заключенные в /* какой-то текст */. (фыва/*олдж*/чсм должно печататься как фывачсм). В моем коде все работает кроме одного НО! Если эти значки идут подряд, то комментарии удаляются некорректно (т. е. в случае /*/*/*фыва*/*/*/ результат отображается некорректно). Помогите решить сию проблему. Вот код:
Код:
#define BUF_LEN 1234
#include <stdio.h>
#include <string.h>

int main(void)
{
	const char *name = "a.txt";
	char str[BUF_LEN];
	char str1[BUF_LEN];
	FILE*fp;
	int i;
	int k = 0;
	int j;
	int a = 0;
	
	fp = fopen(name, "r");

	while(fgets(str, BUF_LEN, fp))
	{
		j = 0;
		for(i = 0; i < strlen(str); i++)
		{
			if((a == k) && (str[i] == '/') && (str[i + 1] == '*'))
			{
				a = k;
				k++;
			}
			else
			{
				if((a == k) && (k > 0) && (str[i - 1] == '*') && (str[i] == '/'))
				{
					a = k;
					k--;
					i++;
				}
				else
				{
					a = k;
				}
			}
			//Определяем, записывать ли нам элемент
			if(k == 0)
			{
					str[j] = str[i];
					j++;
			}
		}
		str[j] = '\0';
		printf("%s", str);
		if(k > 0) printf("\n");
	} 

	getchar();
	return 0;
}
LordJohn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на строки sc0pus Паскаль, Turbo Pascal, PascalABC.NET 4 13.05.2012 18:28
Задача на строки. Prin53 Паскаль, Turbo Pascal, PascalABC.NET 4 07.03.2012 08:22
Строки, задача. grave123 Общие вопросы C/C++ 1 14.12.2009 14:59
Задача на строки С++ Many man Помощь студентам 10 06.05.2009 21:17