Форум программистов, компьютерный форум CyberForum.ru

Удалить комментарии из строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread351404.html
помогити решить вот эти задачи мы недавно начели С и я в этом нулевой пока что зарание спасибо всем. Задача1. Даны три вещественных числа. Проверить: образуют ли данные числа возрастающую последовательность. Задача2. Задача3. буду очень благодарен за помощь
C++ Помогите с обучением С++ Если есть у кого небудь есть свободное время..прошу поучить меня С++ с нуля) http://www.cyberforum.ru/cpp-beginners/thread351354.html
C++ Указатель на массив char и прочее
Страуструп для проверки прочитанного в заданиях после одной из глав просит через typedef сделать пару объявлений и вот как делать некоторые из них я что-то не понял, в частности: Используйте typedef для определения типов: - указатель на массив char ... - массив из 7 указателей на int - указатель на массив из 7 указателей на int
C++ Даны вещественные массивы a[13] и k [13], для каждого массива определить...
Даны вещественные массивы a и k , для каждого массива определить минимальный положительный элемент и средне гармоническое всех отрицательных элементво массива.
C++ вычислить сумму элементов,расположенных между максимальным и минимальным элементом http://www.cyberforum.ru/cpp-beginners/thread351318.html
вычислить сумму элементов,расположенных между максимальным и минимальным элементом (первыми по порядку, если их нескглько) Если вычислить сумму не удается, выдать сообщерие с указанием причины.
C++ Русские буквы Ребят всем привет!!! Подскажите мне пожалуйста такую вещь,хочу в С++ чтобы на русском выводилось,компилирую в Dev C++,у меня каляки маляки выходят,то есть в компиляторе например пишу "Привет" в командной строке вижу "оыаотд" подробнее

Показать сообщение отдельно
recovery101
1 / 1 / 0
Регистрация: 10.06.2011
Сообщений: 10

Удалить комментарии из строки - C++

14.09.2011, 15:19. Просмотров 4527. Ответов 48
Метки (Все метки)

Привет. Вообщем такая задача: Прочитать из файла строку символов. Удалить из этой строки комментарии вида "/* ... */" (вложенные комментарии тоже удалить) . Новую строку не создавать. Вывести исходную и преобразованную строки.
Т.е. например: дана строка "gfsgsdsf /* jhasd */ asdas" и на выходе он выдает "gfsgsdsf asdas". Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
void main ()
{
   setlocale (0,"Rus");
   int m = 0, n = 0;
   FILE * f;
   char buf[100];
   int length;
   f = fopen ("C:\\okfile.txt", "r");
   if (f == NULL) 
       perror ("Ошибка");
   else 
   {
     fgets (buf, 100 , f);
     puts (buf);
     fclose (f);
   }
   length = strlen(buf);
   for(int i = 0; i < length ; i++)
   {
       if ((buf[i] == '/') && (buf[i + 1] == '*'))
       {
          m = i;
       }
       if ((buf[i - 1] == '*') && (buf[i] == '/'))   
       {
          n = i;   
       }
       if ((m != 0) && (i == n))
       {
       int len = strlen(buf)-m;
       memmove(buf+m-1, buf+n+1, len);
       }
   }
   puts (buf);
   getch();
}
Но он не удаляет вложенные комментарии (комментарии в комментарии), т.е. надо чтобы при вводе строки "asdasd /* asd /*123*/ dsa*/ asdasd" выводил "asdasd asdasd".
Помогите пожалуйста исправить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru