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

Заменить в тексте каждое вхождение... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Курсовая по C++ http://www.cyberforum.ru/cpp-beginners/thread582491.html
Получить спортивный мультфильм: а)о метании диска; б)о беге с барьерами; в)о прышках в длину; г)о подтягивании на перекладине; д)о поднятии штанги; любой из вариантов лучше на С++
C++ Даны натуральные числа А,В,С Даны натуральные числа А,В,С, которые обозначают число, месяц и год. Получить тройку чисел, соответствующих следующему дню. Заранее огромнейшее спасибо, походу думаю разбирусь Добавлено через 5 часов 52 минуты Помогите плиизз http://www.cyberforum.ru/cpp-beginners/thread582466.html
Сортировка двусвязного списка C++
///////////
C++ Дана действительная матрица размера m х n. Найти сумму наибольших значений элементов ее строк
Помогите пожалуйста написать такую же программу,только по заданию: Дана действительная матрица размера m х n. Найти сумму наибольших значений элементов ее строк. Пример: Задание. Найти максимальную сумму элементов строк матрицы 3×5 с использованием функций. Для диалога с пользователем использовать меню. Пример программы: #include <iostream.h> #include <conio.h> #include <stdio.h>...
C++ Окно нестандартной конфигурации Windows http://www.cyberforum.ru/cpp-beginners/thread582403.html
Здравствуйте, нужен пример программы в ОС Windows, создающей (только с помощью системных функций) окно нестандартной конфигурации. На С++. Коротенько. Заранее благодарен.
C++ Скриншот экрана Мне нужно сделать скриншот экрана (того, что видит юзер ежесекундно). Перерыл уже кучу форумов, но не нашел подходящего + понятного. Кто нибудь может мне написать функцию, в которую передается имя файла (*.bmp) в который нужно сохранить скрин и что бы функция сделала скрин и сохранила? Желательно с комментами подробнее

Показать сообщение отдельно
JiryPK
1 / 1 / 0
Регистрация: 13.11.2010
Сообщений: 17
22.05.2012, 19:02     Заменить в тексте каждое вхождение...
Заменить в тексте каждое вхождение константы "1" словом "odin". Предполагается, что текст записан в файле input.txt. Результат выводится на экран. Задание выполнить в двух вариантах: со строками типа string и char.

Со string всё получилось(вот код, может кому пригодиться):
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
#include<string>
#include<iostream>
#include<fstream>
 
using namespace std;
 
class String
{
    public:
        string str1,str2,str3;
 
        void Funct();
};
 
void String::Funct()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
 
    str1="1";
    str2="odin";
    
    while(!fin.eof()) 
    {
        getline(fin,str3);
        
         if(str3.find(str1)<4000)
         {
               str3.replace(str3.find(str1),str1.size(),str2);
               fout << str3 << endl;
         }
         else
           fout << str3 << endl;    
        cout << str3 <<endl;
 
    }
}
int main()
{
      String s;
     
      s.Funct();
 
      return 0;
}
а вот с char проблема - не получается сместить символы так, чтоб слово "odin" не захватвало следующее слово.
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
#include "stdafx.h"
#include<iostream>
#include<fstream>
 
using namespace std;
 
class Char
{
    private:
        char *wd1, *wd2, *sl1, *sl2;
    public:
        Char(char *w1="a", char *s1="a"):wd1(w1), sl1(s1){}
 
        void Funct(ifstream &in);
};
 
void Char::Funct(ifstream &in)
{
    int size, p;
 
 
    in.clear();
    in.seekg(0, ios::end);
    size = in.tellg();
    in.seekg(0, ios::beg);
//  cout<<"size = "<<size<<endl;
    char *str = new char[size];
 
    p=size;
    
    memset(str, 0, size);
    in.read(str, size);
 
    for(int i=0; i<size; i++)
    {
        if(str[i]==sl1[0])
        {   
            p=i;
            str[i]=wd1[0];
            //i=i+4;
            int j=i;
            int count = 0;
            for(j=i; j<(i+4); j++)
                str[j] = wd1[count++];
        }
    }
 
    cout<<endl<<endl<<"Си строки типа char:"<<endl;
    cout<<"------------------------------------------"<<endl;
    cout << str << endl;
    //cout << p << endl;
 
    delete[]str;
    in.close();
}
Добавлено через 4 часа 49 минут
Подъкиньте хоть какую-нибудь идею...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru