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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.73
Minchir
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 24
#1

Замена слова одно на другое с fgets - C++

25.11.2009, 15:49. Просмотров 3285. Ответов 20
Метки нет (Все метки)

Добрый день. Нужна помощь. Незнаю как доделать. Надо из zod в zod1 перенести все данные, потом там заменить а17 на troleibusas и записать в новый файл. Заранее благодарен. Вроде как лёгкая программка, но я пока что очень медный чайник( Надо на С запрограммить.)

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
42
43
44
45
46
47
48
/*Aleksej Sabliuk #2 ND
Duota simboliu rinkini visoje sekoje pakeiskite i nurodyta(pvz.,'g-ve'
pakeiskite i 'gatve'*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
    FILE * lol; 
    lol = fopen("gve.txt","r");
    FILE * lolnew;
    lolnew = fopen( "asd.txt", "w");
    
    char zod[256], zod1[512];/*zod[256]-kintamasis nuskaityti po viena zodi is failo*/
 
                           
      if ((lol= fopen("gve.txt", "r"))==NULL) /*failo atidarymas ir patikrinimas ar atsidare*/
   printf("FAILAS NEATIDARYTAS\n");
   else
   {
      
      while(!feof(lol))
      {
       fgets(zod,256,lol);
       puts(zod);
       zod[256]:=zod1[512];
       fputs(zod1,512,lolnew);
    /*
            if(strcmp(zod,"a17")==0)
            {
               fprintf(lolnew,"troleibusas");
            }
            else
            {
               fprintf(lolnew,"%s\n",zod);
                            
            }
*/
 
      }
   }                       
     fclose(lol);
     fclose(lolnew);
   
  
  system("PAUSE");    
  return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2009, 15:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена слова одно на другое с fgets (C++):

Замена одного слова на другое - C++
Здраствуйте. В рядок через пробел записаны слова(допустим названия зарубежных городов). Необхобимо заменить их на другие(наши города). Ввод...

Замена одного слова на другое - C++
Здравствуйте!!!! Помогите плз. Есть задача: Строки. Написать программу, в которой пользователь вводит строку текста, слово, которое...

Замена введенного слова на другое - C++
доброго времяни суток,программа заменяет введенное слово на др, string s1, s2; map &lt;string, string&gt; words; while(in &gt;&gt; s1...

Замена слова в файле на другое слово - C++
Есть файл file.txt, в котором много текста, строк где-то на 25. Как мне в нем все слова &quot;afz&quot;, заменить на переменную в которой мое слово,...

Замена слова на другое во всём тексте - C++
Доброго дня! Смотрел задачи на форуме, там нужно было заменить в тексте слово &quot;мама&quot; на слово &quot;бабушка&quot;. Я написал программу, которая...

Замена одного слова в строке на другое - C++
Как заменить read на study ? int main(int argc, char**argv) { string /*const*/ text1 = &quot;I'm reading\n&quot;; string /*const*/ text2...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2009, 02:52 #16
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
#include <stdio.h>
#include <string.h>
 
main()
{
    FILE *ifp;
    char line[100], dest[100], *p, *q;
    const char *a = "a17",
               *b = "troleibus";
    
    ifp = fopen("file1", "r");
    
    while (fgets(line, sizeof line, ifp)) {
        for (p = line, q = dest; *p; p++, q++)
            if (!strncmp(p, a, strlen(a))) {
                p += strlen(a)-1;
                strcpy(q, b);
                q += strlen(b)-1;
            } else
                *q = *p;
        *q = '\0';
        fputs(dest, stdout);            
    }
    
    fclose(ifp);
    return 0;
}
0
Minchir
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 24
03.12.2009, 20:44  [ТС] #17
Почему-то не сохраняет во второй файл и даже не заменяет в первом.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.12.2009, 05:12 #18
эта экспериментальная, она берёт из файла file1 и выводит результат на экран
0
Minchir
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 24
04.12.2009, 10:07  [ТС] #19
Всё прекрасно работает) Эксперимент удался.)
0
Minchir
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 24
07.12.2009, 18:27  [ТС] #20
Добрый день. У меня два вопроса. Зачем p q -1 в конце, что это даёт?
И зачем *p *q сделаны с указателями?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
08.12.2009, 03:19 #21
p и q удобно перемещать по строке (их куда поставил, там они и стоят - не зависят от i)
-1 нужно, чтобы не пропускать пробел (если к указателю прибавить длину слова, в неё входит и первый символ, но указатель не перед словом, а уже на первом символе)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2009, 03:19
Привет! Вот еще темы с ответами:

Замена одного слова на другое в массиве строк С++ - C++
Заданы массив строк и два слова: первое - то, которое мы будем заменять, и второе - соответственно то слово, которым мы будем заменять...

Файлы, поиск слова и замена на другое слово - C++
Напишите программу, которая в файле INPUT.txt заменяет слово &quot;hello&quot; на слово &quot;reboot&quot;

Замена одного слова на другое в строке типа char - C++
Замена одного символа на другой в строке типа char - C++ Вообщем есть массив символов char str = &quot;abcafgh&quot;; нужно все &quot;a&quot; заменить...

Как пересчитать одно в другое? - C++
b|g 0|0000000000 1|0000000001 2|0000000011 3|0000000111 4|0000000101 5|0000000100 6|0000001100 7|0000001101 8|0000001111


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.12.2009, 03:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru