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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2011, 00:09   #1
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++)

Помогите решить!До понедельника!Что не перепробовала ничего не получается.
На Borland С++
Lapochka вне форума Ответить с цитированием
Старый 12.11.2011, 00:42   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Покажи нам, что ты пробовала и что не получилось. Так интереснее, чем просто сесть и написать код. )
Son Of Pain вне форума Ответить с цитированием
Старый 23.11.2011, 13:47   #3
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

Код:
#include "conio.h"
#include "string.h"
#include "stdio.h"

bool IsItFindStr(char* StrFrom, char* StrFind)
{
  int StrFindLen = strlen(StrFind);
  for (int i = 0; i < StrFindLen; i++)
    if ( StrFrom[i] != StrFind[i] )
      return false;
  return true;
}

void main(void)
{
  FILE *pF1 = fopen ("C:\\MyFile.txt", "rb");
  if ( pF1 )
  {
    FILE *pF2 = fopen("C:\\MyFile.tmp", "wt");
    if ( pF2 )
    {
      char Bufer1[1024];
      char BuferTo[1024];
      char StrFind[] = "колбаса";
      char StrSwap[] = "'колбаса'";
      int CurBufToIndex;
      int SwapLen = strlen(StrSwap);
      while ( fgets(Bufer1, 1023, pF1) )
      {
        CurBufToIndex = 0;
        for (int n = 0; n < 1024 && Bufer1[n] != '\0'; n++)
          if ( Bufer1[n] != StrFind[0]  || !IsItFindStr(&Bufer1[n], StrFind) )
            BuferTo[CurBufToIndex++] = Bufer1[n];
          else
          {
            for (int m = 0; m < SwapLen; m++)
              BuferTo[CurBufToIndex++] = StrSwap[m];
            n += (strlen(StrFind)-1);
          }
        BuferTo[CurBufToIndex-2] = '\n';
        BuferTo[CurBufToIndex-1] = '\0';
        fputs(BuferTo, pF2);
      }
      fclose (pF2);
    }
    fclose (pF1);
  }
  getch();	
}



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.11.2011 в 16:21.
Lapochka вне форума Ответить с цитированием
Старый 23.11.2011, 16:00   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

А что конкретно не получается?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 23.11.2011, 22:29   #5
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

не заменяет слово.

Последний раз редактировалось Lapochka; 23.11.2011 в 22:31.
Lapochka вне форума Ответить с цитированием
Старый 25.11.2011, 00:03   #6
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

вот уже как-то прогресс есть,но всё равно не то
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void paste(char buf[],char *s,int k,int c)
{
for (int i=c;i<c+k;i++)
buf[i]=s[i];
}

main()
{
char buf[100];
char buf1[100];
char word[10];
int j=0;
int k=0;
int i=0;
int n=0;
FILE *fp;
char s1[]="yiu";

fp=fopen("File.txt","r+");
if(fp==NULL)
{
printf("\n Error!!!!");
getch();
return 0;
}
char s2[]="you";

buf[0] = getc(fp);
while (buf[i]!=EOF)
{
  	  i++;
     buf[i]=getc(fp);

}
n=i+1;
buf[n]='\0';
//printf("%s",buf);

for (int i=0;i<n;i++)
{

if (buf[i]==' ')
{
if (strcmp(s1,word)==0)
{
     paste (buf1,s2,3,i-k);
     j+=k;
}
k=0;
j++;
}
else
{
 buf1[j]=buf[i];
 word[k]=buf[i];
 k++;
 j++;
}
}
printf("buf: %s\nbuf1: %s\n",buf,buf1);
	fclose(fp);
   getch();
   return 0;
}
Lapochka вне форума Ответить с цитированием
Старый 01.12.2011, 14:05   #7
Lapochka
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 24
По умолчанию

поможете?
Lapochka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти в тексте заданное слово методом двоичного поиска? maxkov Помощь студентам 1 04.11.2010 16:51
Подсчитать сколько раз заданное слово встречается в сообщении. kri* Помощь студентам 1 28.05.2010 22:29
подходит ли заданное слово под заданный шаблон Ivan_assm Помощь студентам 2 18.04.2010 20:44
сколько раз заданное слово встречается в данной строке pascal1994 Помощь студентам 4 04.02.2009 08:41