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

Заменить все вхождения одного слова на другое - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление уравнения http://www.cyberforum.ru/cpp-beginners/thread966661.html
Написать программу с функцией для вычисления следующего уравнения: y=a/sqrt(b-1)
C++ Хочу написать собственный простенький 3d движок с генерацией карты Я студент 4-го курса. Для защиты диплома нужно написать простенький, но свой 3d движок с генерацией карты. думаю написать на плюсах и directx. Знаю в среднем плюсы, шарп и opengl, принцип создания... http://www.cyberforum.ru/cpp-beginners/thread966648.html
C++ Работа с односвязным списком
Задан односвязный список. Реализуйте добавление и удаление из списка. При удалении рассмотрите две ситуации: когда происходит попытка удалить элемент из пустого списка и когда элемент не найден. (в...
QuickSort найдите ошибку C++
Не правильно сортирует массив, подскажите в чем ошибка.... #include <iostream> using namespace std; int partition(int A,int p,int r); void quicksort(int A,int p,int r); int main() { const int...
C++ Получить все числа Мерсенна заданного интервала http://www.cyberforum.ru/cpp-beginners/thread966636.html
Простое число называется числом Мерсенна, если оно может быть представлено в виде 2p – 1, где p – тоже простое число. Получить все числа Мерсенна заданного интервала. Как это написать на C++?
C++ Широкие символы + Unicode Доброго времени суток всем) На эту тему материала много, но он весь разрозненный и не полный. Хотелось бы всё узнать о представлении национальных алфавитов (в частности кириллицы) в исходном тексте... подробнее

Показать сообщение отдельно
proger123
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 9

Заменить все вхождения одного слова на другое - C++

01.10.2013, 19:39. Просмотров 944. Ответов 7
Метки (Все метки)

Задание: считать из файла строки, заменить все вхождения одного слова на другое. В консоль: input, output, hello, bay. - заменить в файле input все слова hello на bay и записать в output. Что делаю не так? Подскажите пожалуйста

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <string>
#include <stdio.h>
#include <fstream>
#include <cstdlib>
 
using namespace std;
 
void replace(std::string text, const std::string& from, const std::string& to)
{
    for (size_t i = 0; (i = text.find(from, i)) != std::string::npos; i += to.length())
        text.replace(i, from.length(), to);
 
}
 
int main(int argc, char** argv){
#include <fstream>
    FILE *input;
    FILE *output;
    int Argument_input = 2;
    int Argument_output = 3;
    int Argument_what = 4;
    int Argument_replac = 5;
   // std::string str;
    char *str;
 
 
    if (argc < 4){
        cout << "Неккоректно введены данные\n";
        return 0;
    }
 
    if ((input = fopen(argv[Argument_input], "rb")) == NULL){
        cout << "Файл не открыт на чтение\n";
        return 0 ;
    }
 
    if ((output = fopen(argv[Argument_output], "wb")) == NULL){
        cout << "Файл не открыт на запись\n";
        return 0;
    }
 
    while(!feof(input)){
 
            fscanf(input, "%256[^\n]", str);
            string str1 = str;// =  static_cast<string>(str);
 
    int i = 0;
 
     while(str[i] != '\n'){
            replace(str1, argv[Argument_what], argv[Argument_replac]);
            i++;
          //  string s;
           // s.append(str1);
            fwrite(str1.c_str(), sizeof(string), sizeof(str1), output);
 
        }
 
    }
 
 
 
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru