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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 00:34   #1
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию С++ Работа с файлом

Здравствуйте!
Программа заменяет двойные пробелы на одиночные и записывает отредактированный текст в файл Output.
Код:
#include "stdafx.h"
#include <iostream>
#include <ctype.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
void main()
 {
   char s[80];
   int i,k,l,n;
   FILE *fin, *fout;
   fin=fopen("Input.txt", "r");
   fout=fopen("Output.txt", "w");
 
   while (NULL!=fgets(s,80,fin))
    {
     i=0;
     while (s[i]!='\0')
     {
       if (s[i]==' ')
    {
     if (s[i+1]==' ')
       {
        k=i;
        l=i;
        n=1;
        while ((s[l]!='\0')&&(s[l]==' '))
         { 
			 l++;
         }
        while (s[l]!='\0')
         { s[k+n]=s[l];
           n++;
           l++;
		s[k+n]='\0';
		 }
       } 
	 else i++;
     }
        i++;
		
	 }
        fprintf(fout,"%s",s);
     }
     fclose(fin);
     fclose(fout);
}
Нужно ввести ограничение. Двойные пробелы,которые находятся в кавычках не должны заменяться на одиночные.
Подскажите пожалуйста,что нужно дописать в программу.Думала сделать что нибудь типа цикла "если s[i-1]=="'",s[i+2]=="'" , то break. Но не понимаю куда этот цикл засунуть.Помогите пожалуйста!
marina12 вне форума Ответить с цитированием
Старый 26.03.2013, 00:50   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Заменить
Код:
if (s[i+1]==' ')
На
Код:
if (s[i+1]==' ' && (s[i-1] != 39 || s[i+2] != 39))
Правда, остается проблема выхода за границы строки (она есть и в исходном коде).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.03.2013, 09:21   #3
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию

Огромное вам спасибо, оказалось все очень легко!
marina12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом Rik55rus Общие вопросы C/C++ 5 06.10.2012 15:35
работа с файлом zorra123 Общие вопросы C/C++ 2 30.03.2012 18:43
работа с файлом Андрей.12 Помощь студентам 1 15.02.2010 01:35
Работа с файлом D_E_N Общие вопросы Delphi 6 17.07.2009 14:03
С++ работа с файлом. НедоВовик Помощь студентам 1 05.07.2009 18:22