С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.65
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
#1

В текстовом файле после каждой 2 буквы вставлять буквы из слова - C++

08.03.2012, 19:04. Просмотров 2445. Ответов 13
Метки нет (Все метки)

Подскажите, пожалуйста как на C++ в текстовом файле после, к примеру, каждой 2 буквы вставлять по очереди буквы из слова, например "привет".
Вот пример:
текст: Здравствуйте очень приятно познакомиться (убрав пробелы между слов)
результат: Здпрарвситввуйететочпенрьпиривятенотпопзнракиомвитеьстя
)))) должно быть вот так... делать надо в цикле, но вот как его правильно построить ))))
помогите))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2012, 19:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В текстовом файле после каждой 2 буквы вставлять буквы из слова (C++):

После каждой 2 Буквы вставлять строку символов MAU - C++
С++ Ввести строку символов.И После каждой 2 Буквы ( Вставлять MAU ) Немного поправлю * И После каждой 2 Буквы ( Вставлять строку...

В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы. - C++
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы.

C (СИ) - Ввести строку символов.И После каждой 2 Буквы ( Именно буквы ) Вставить слово - C++
Огромное Спасибо Darkrduk за эту программу ( программа вставляет MAU ) после каждого 2 символа ** .. Нужно умудриться сделать ! Именно...

в заданном тексте после каждой буквы «b» добавляет буквы «ak». - C++
Составить программу, которая в заданном тексте после каждой буквы «b» добавляет буквы «ak». #include<iostream.h> #include<math.h> ...

В текстовом файле заменить все лова начинающиеся с буквы "а" на первое место, которое начинается с буквы "с" - C++
ЗАВТРА ЭКЗАМЕН И НЕ РЕШИЛА ЭТУ ЗАДАЧУ! НЕ ЗНАЮ КАК! ели знаете как ее решить-решите, очень надо! В текстовом файле заменить все лова...

замена буквы в текстовом файле. с++ - C++
#include <iostream> #include <fstream> using namespace std; int main() { fstream f("text.txt",...

13
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.03.2012, 19:19 #2
хммм если у тебя есть файл так скачай из него весь текст отформатирую как надо это не сложно и потом весь текст закинь обратно в тот же очищенный файл
0
Betokuha
32 / 29 / 9
Регистрация: 05.03.2012
Сообщений: 114
09.03.2012, 00:25 #3
точно сработает копирование. просто создать вторую строку и копировать в неё посимвольно всё, кроме пробелов. после каждых два символа копировать из 'привет' index символ (там еще надо сделать сброс index когда конец слова)
0
MrCold
856 / 754 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
09.03.2012, 16:35 #4
"Велосипед" . Остается прикрутить работу с файлом .

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <string.h>
#define BSIZE 250
 
void insertFun(char*text, int pos, char sym)
 {
    for ( int i = strlen(text); i >= pos; i--)
                 text [i + 1] = text[i];
                          text[pos] = sym;
}
 int main(){
 
     char text[BSIZE] = "Info about live work buildings and lofts";
 
 
    char symbols[100] = "Hellow";
    int numsym = -1;
     long n = 0, i = 0;
    int count = 0;
    long count_insert = 0;
    bool loop = true;
 
 long len = strlen(text);
 
    std::cout << "Word for letter : Hellow\nBase text :\n" << text << std::endl ;
 
 
 ////////////////////////////////////////////////////////////
///   ВСТАВЛЯЕМ В ТЕКСТ БУКВЫ ИЗ СЛОВА (после второй буквы в каждое слово)
 
       i = 0;
 
    while(text[i]){
 
       if(text[i] ==' ') loop = true;
 
         if(isalpha(text[i])&&loop) count++;
 
    if(count > 1)
         {
            count = 0;
            numsym++;
            if(numsym > strlen(symbols) - 2)
 
               numsym = 0;
 
            count_insert ++;
 
       insertFun( text, i + 1, symbols[numsym]);
 
       loop = false;
    }
    i++;}
    //              ВЫВОД НА ЭКРАН 
    std::cout << "\nInsert letters  :" << std::endl;
 
    for(i = 0; i <  len + count_insert   ; i++)
 
    std::cout << text[i];
 
    std::cout << std::endl;
 
       i = 0;
 
    int  j = 0;
     /////////////////////////////////////////////////////////////
     //                    УДАЛЕНИЕ ПРОБЕЛОВ
 
        for(; j <  len + count_insert; ++j )
        {
          if( text[j] != ' ' )
          {
                text[i++] = text[j];
          }
        }
        text[i] = '\0';
 
 
      std::cout << "\nWhithout spaces  :" << std::endl;
 
      //              ВЫВОД НА ЭКРАН 
 
       for(j = 0; j < i ; j++){
 
    std::cout << text[j];
 
 
    }
 std::cout << std::endl;
 
 
system("pause");
 
    return 0;}
Результат

C++
1
2
3
4
5
6
7
8
9
Word for letter : Hellow
Base text :
Info about live work buildings and lofts
 
Insert letters  :
InHfo abeout lilve wolrk buoildings anHd loefts
 
Whithout spaces  :
InHfoabeoutlilvewolrkbuoildingsanHdloefts
Добавлено через 9 минут
Хотя вот с файлом .Для одной строки сработает .
Чтение , сортировка ,перезапись .

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
///////////////////////////////////
//       CODE FOR MSVS 2010
///////////////////////////////////
 
#include <iostream>
#include <fstream>
#define BSIZE 256
 
void insertFun(char*text, int pos, char sym)
 {
    for ( int i = strlen(text); i >= pos; i--)
                 text [i + 1] = text[i];
                          text[pos] = sym;
} 
 int main(){
                          
     char *text = NULL;
        
 
     char symbols[100] = "Hellow";
     int numsym = 0;
 
    // std::cin.getline(text,BUFSIZE);                             
     long n = 0, i = 0;
     int count = 0;
     long count_insert = 0;
     bool loop = true;
 
    
 
     std::cout << "Text from file\n" << std::endl;
 
     std::ifstream infile("file.txt");
     if(!infile) std::cout << "Error opening file -'infile'";
     //////////////////////////////////////////////////////////////////
     // ЗАПИСЬ СОДЕРЖИМОГО ФАЙЛА В МАССИВ 
     //              ВЫВОД НА ЭКРАН 
 
     else
     { 
     text = new char[BSIZE];
         infile.getline(text,BSIZE);
         long len = strlen(text);
         std::cout << text;
     /////////////////////////////////////////////////////////////
     //   ВСТАВЛЯЕМ В ТЕКСТ БУКВЫ ИЗ СЛОВА (после второй буквы в каждое слово)
       
         i = 0;
 
     while(text[i]){
 
         if(text[i] ==' ') loop = true;
 
            if(isalpha(text[i])&&loop) count++;
 
     if(count > 1) 
            {   
                count = 0;  
 
                if(numsym > strlen(symbols) - 2)
 
                    numsym = 0;
 
                count_insert ++;
 
         insertFun( text, i + 1, symbols[numsym]);
         numsym++; 
         loop = false;
     }
     i++;}
     std::cout << "\n\nInsert letters from word\n" << std::endl;
 
     for(i = 0; i <  len + count_insert - 2 ; i++)
 
     std::cout << text[i];
 
     std::cout << std::endl;
 
       i = 0;
 
     int  j = 0;
     /////////////////////////////////////////////////////////////
     //                    УДАЛЕНИЕ ПРОБЕЛОВ
 
        for(; j <  len + count_insert - 2 ; ++j )
        {
          if( text[j] != ' ' )
          {
                text[i++] = text[j];
          }
        }
        text[i] = '\0';
 
 
        std::cout << "\nDelete spaces and rewrite file\n" << std::endl;
 
         /////////////////////////////////////////////////////////////
     //              ВЫВОД НА ЭКРАН ТО ЧТО ЗАПИШЕТСЯ
 
         for(j = 0; j < i ; j++)
 
     std::cout << text[j];
 
         std::cout << std::endl;
 
     
     }
     infile.close();
 
      std::ofstream outfile("file.txt");
 
     if(!outfile) std::cout << "Error opening file 'outfile' ";
 
     else{
 
         outfile << text;
    
         ;}
     outfile.close();
 
     delete[]text;
 
system("pause");
 
    return 0;
 }
 //
Добавлено через 17 минут
Cтрока 74 и 86 заменить на эту
C++
1
for(; j <  len + count_insert ; ++j )
1
Betokuha
32 / 29 / 9
Регистрация: 05.03.2012
Сообщений: 114
09.03.2012, 17:00 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<string>
#include<iostream>
using namespace std;
 
int main()
{
 string s1="aaaaaaaaaaaaaaaaaaaaaaaa",s2="bcdefg";
 //cin»s1»s2;
 
 int len2=s2.length(),
 t=0;
 for(int i=2;i<s1.length();i+=2)
 {
 t%=len2;
 s1.insert(i,s2.substr(t,1));
 t++;
 i++;
 }
 //cout«s1;
 //s1="aabaacaadaaeaafaagaabaacaadaaeaafaa"
 return 0;
}
как то так)
тока я пробелы не удалял...
0
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
11.03.2012, 23:17  [ТС] #6
спасибо за идею, MrCold, ну только есть проблемма. вставка происходит в тексте с рускими буквами и запись должна осуществляться в тектовый файл при вставке ключа на русском языке.
0
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
18.03.2012, 23:32  [ТС] #7
есть еще одно похожее задание!
в текстовом файле в слове ( рус буквы) найти каждую 3 букву и переписать эти буквы в этот файл за первоначальным словом.
потом взять другое слово и вставить эти буквы одну за одной как и в предыдущей задаче в цикле через 2) вот придумают же такое...)
0
MrCold
856 / 754 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
19.03.2012, 00:12 #8
_Sandra_, не знаю как будет со временем
Но хотелось бы узнать задание .Честно - не понял :
первоначальным словом -- ? может первым ?
другое слово -- ?
вставить эти буквы ... куда ?
0
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
22.03.2012, 22:54  [ТС] #9
к примеру слово - параллелипипед
вот выписываем каждую 3 букву и выходит - рлип
и берем слово картошка))))
значит выйдет - карртлошикап.
вот так нужно получить)) и все операции с русскими буквами
0
MrCold
856 / 754 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.03.2012, 02:34 #10
Как смог, сразу написал . Надеюсь не опоздал .

Цитата Сообщение от _Sandra_ Посмотреть сообщение
все операции с русскими буквами
В VisualStudio все работает.

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <fstream>
using namespace std;
 
bool isAlpha(const char sym);
 
void insert(char*insword, int pos, char sym);
 
void  mainInsert(char *word,char *charar) ;
 
void fileWork(ifstream& infile,ofstream& outfile);
 
int main(){
    setlocale(LC_ALL,"Russian");
  
 
   ifstream infile("file1.txt");
   if(!infile){
   cout << "Oшибка открытия файла №1 !" << endl;
   return 1;
   }
   ofstream outfile("file2.txt");
   if(!outfile){
   cout << "Oшибка открытия файла №2 !" << endl;
   return 1;
   }
 
   fileWork(infile,outfile);
 
   infile.close();
   outfile.close();
   cout << endl;
system("pause");
return 0;
}
 
/////////////////////
//   ФУНКЦИЯ ОПРЕД . ЧТО СИМВОЛ -  БУКВА 
bool isAlpha(const char sym){
    size_t loop = 0;
    char *p = ";(/:),}.[?]!{ \n";
    if(!sym) return 0;
    while(*p){
        if(sym == *p++) loop++;}
    if(loop)
        return false;
    else return true;
}
 
/////////////////////
//   ПОДФУНКЦИЯ ВСТАВКИ СИМВОЛОВ
void insert(char*insword, int pos, char sym)
 
 { size_t i = 0;
     for ( i = strlen(insword); i >= pos; i--)
             insword[i + 1] = insword[i];
                      insword[pos] = sym;
}
 
/////////////////////
//  ГЛАВНАЯ ФУНКЦИЯ ВСТАВКИ СИМВОЛОВ
void  mainInsert(char *word,char *charar) {
    size_t i = 0;
    size_t k = 0;
    while(word[i]){
            
      if(i % 2 == 0 && i != 0){
            if(k == strlen(charar))
          k = 0;
    insert( word, i + 1, charar[k++]);}  
      i++;}
}
/////////////////////
//   ФУНКЦИЯ РАБОТЫ С ФАЙЛОМ 
void  fileWork(ifstream& infile,ofstream& outfile){
    char word[100] = "";
    char insword[100] = "";
    char charact[20] = "" ;
    size_t n = 0;
    size_t i = 0;
    size_t j = 0;
    size_t wordcount = 0;
    size_t chcount = 0;
    size_t count = 0;
 
    char text[512] ="";
 
 
    infile.unsetf(ios::skipws);// ДЛЯ ПРОБЕЛОВ 
    while(!infile.eof()){
    infile >> text[i];//  ФАЙЛ В МАССИВ 
 
        ////////////////////////////////////////////////////////////
 
        if(isAlpha(text[i - 1]))  //  ЕСЛИ КОНЕЦ СЛОВА 
            if(!isAlpha(text[i]) ) { // УВЕЛИЧИТЬ 
                wordcount++;          // СЧЕТЧИК СЛОВ
            }
        /////////////////////////////////////////////////////////////
            if(wordcount % 2 != 0 ) {   // ЕСЛИ СЧЕТЧИК НЕ ЧЕТНОЕ
                                
                insword[n] = text[i] ;    // ЗАПОМНИМ ВТОРОЕ СЛОВО
                n++;
        }
    ///////////////////////////////////////////////////////////////////
 
        if(wordcount % 2 == 0 ) {    // ЕСЛИ СЧЕТЧИК  ЧЕТНОЕ
        word[j++] = text[i];         // ЗАПОМНИМ ПЕРВОЕ СЛОВО
    if(j % 3 == 0 && j != 0 && isAlpha(text[i])){
        charact[chcount++] = text[i];       // ЗАПОМНИМ СИМВОЛЫ ВСТАВКИ 
            }
    ////////////////////////////////////////////////////////////    
 
    if(!isAlpha(text[i])) {        // ЕСЛИ НЕ БУКВА ВСЕ ОБНУЛИМ
        charact[chcount] = '\0';
    word[j] = '\0';
    insword[n] = '\0';
    j = 0; chcount = 0;n = 0;
    count = 0;}
        }
/////////////////////////////////////////////////////////////////////////////
 
        //ЕСЛИ КОНЕЦ СЛОВА И СЧЕТЧИК  ЧЕТНОЕ   ВСТАВКА СИМВОЛОВ ИЗ ПЕРВОГО СЛОВА
        //   ЗАПИСЬ В ФАЙЛ И ВЫВОД В КОНСОЛЬ ТО ЧТО ЗАПИШЕТСЯ 
 
     if(isAlpha(text[i - 1])&&!isAlpha(text[i]) && wordcount % 2 == 0 ) {  
 
           mainInsert(insword,charact)  ;  
       
     outfile  << ' ' << word << ' ' << charact << ' '  << insword;
     cout  << ' ' << word << ' ' << charact << ' ' << insword;
 
      }
/////////////////////////////////////////////////////////////////////////
     i++;
     }
}
В первом файле :
C
1
Десятую весну подряд в Совете ветеранов Центрального района проходят встречи поэтов-фронтовиков.Только вот с годами поэтический клуб ветеранов, участников Великой Отечественной войны, становится похожим на творческие вечера других...
Запишется во второй:
C
1
Десятую  су  вессунсуу подряд  дд  в Совете  ве  вевтеевреавнеовве Центрального  нано  ранйаонноан проходят  од  всотдроедчоид поэтов-фронтовиков  эвртив .Тоэлвьрктои вот  т  с годами  ди  подэитдиичдеисдкиидйи клуб, у  веутуеуруаунуоуву участников  ано  Веалниокаонйо Отечественной, есео  воейснеыо становится  авс  поахвосжаивмс на    тв вечера. ча  дрчуагчиахч
1
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
30.03.2012, 01:00  [ТС] #11
MrCold, спасибо Вам большое)) выручили с идеями в который раз)))
когда появится что-то интересное, я еще раз напишу)))
0
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
07.04.2012, 22:04  [ТС] #12
новое задание)) в принуипе тоже самое, только исходный тескт нужно разделить на 4 части и в каждую из них вставлять ключ по- разному, т.е. через 1, через 2, 3 и 4 буквы. и поменять части местами, причем для изменение мест частей ( все 16 позиций) нужны все варианты... понимаю, что очень дурное задание, но если сможете помочь... буду благодарна) MrCold, надеюсь на Вас)
0
MrCold
856 / 754 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.04.2012, 23:52 #13
_Sandra_, тема совсем затерлась, поэтому пожалуйста:

1)Создайте новую тему

2)Выложите задание от начала до конца

на форуме столько асов-программистов, им тоже будет интересно

От себя, чем смогу помогу.
0
MrCold
856 / 754 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
10.04.2012, 00:44 #14
Код
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
#include <iostream>
#include <fstream>
#include <string.h>
#include <locale.h>
using namespace std;
 
const size_t QPART = 4;  
 
int ispunctFun(const char ch);
 
 
void insert ( char*str,
                int pos, char sym);
 
 
void  fill_part ( char *part,
                  size_t start,
                  size_t length,
                  char * str );
 
 
void  insert_in_part (  char *part,
                        size_t  ind,
                        char *keyword);
 
void   output (  char *part  );
 
 
int main()
{   
    setlocale(LC_ALL,"Russian");
             
             size_t i = 0;
             size_t worksize = 0;
             size_t parts_length = 0;
             char *str = NULL;
             char *part = NULL;
             char text[4][256] = {
                                   "Вставка символов после первой буквы :\n",
                                   "Вставка символов после второй буквы :\n",
                                   "Вставка символов после третьей буквы :\n",
                                   "Вставка символов после четвертой буквы :\n" };
            
             char keyword[100] = "Привет";  // СЛОВО ДЛЯ РАЗБИВКИ НА СИМВОЛЫ 
 
    ifstream  infile;
    infile.open("file.txt");
    if(!infile) cerr << "Ошибка открытия файла для чтения!!!" << endl;
 
    else {
 
        infile.seekg(0,ios::end);
        worksize = infile.tellg();//  РАЗМЕР ФАЙЛА 
        infile.seekg(0,ios::beg);
 
        str = new char[worksize * 16];   
 
        infile.unsetf(ios::skipws);// ДЛЯ ПРОБЕЛОВ 
        cout << "Исходный текст : \n\n";
 
    /////////////////////////////////////////////////////////////////////////
        // //             ЧИТАЕМ ФАЙЛ В МАССИВ 
    /////////////////////////////////////////////////////////////////////////
        while(infile >> str[i])
        {  
            cout << str[i]; //   ВЫВОД НА ЭКРАН 
            i++; 
        } 
        str[i] = '\0';      worksize = i;   //  КОЛИЧЕСТВО СИМВОЛОВ В ФАЙЛЕ
        while(worksize % QPART != 0) worksize++;  // СДЕЛАЕМ КРАТНЫМ ЧЕТЫРЕМ 
        parts_length = (worksize /QPART);  // ДЛИНА  ЧАСТИ ТЕКСТА
        part = new char[parts_length * QPART ];
 
///////////////////////////////////////////////////////////////////////////////////
                           //  ТЕКСТ НА ЧАСТИ 
////////////////////////////////////////////////////////////////////////////////////
 
        cout << "Новый текст : \nПервая часть текста :\n";//
        for(i = 0; i < QPART ;i++){
        fill_part(part, 0, parts_length - 1, str);               // 1  ЧАСТЬ  ТЕКСТА 
        insert_in_part ( part, i, keyword );  
        cout << text[i];
        output ( part);
        }
                
/////////////////////////////////////////////////////////////////////////////////////
 
                cout << "Вторая часть текста :\n";//
        for(i = 0; i < QPART ;i++){
        fill_part(part,parts_length - 1, (parts_length * 2) - 2, str);  // 2 ЧАСТЬ  
        insert_in_part ( part, i, keyword );  
        cout << text[i];
        output ( part);
        }
 
                
/////////////////////////////////////////////////////////////////////////////////////
 
                cout << "Третья часть текста\n";//
 
                        for(i = 0; i < QPART ;i++){
        fill_part(part,(parts_length * 2) - 2, (parts_length * 3) - 3, str);   // 3 ЧАСТЬ 
        insert_in_part ( part, i, keyword );  
        cout << text[i];
        output ( part);
        }
 
                
/////////////////////////////////////////////////////////////////////////////////////
 
                cout << "Четвертая часть текста\n";//
 
                        for(i = 0; i < QPART ;i++){
        fill_part(part,(parts_length * 3) - 3, (parts_length * 4) - 4, str);          // 4  ЧАСТЬ
        insert_in_part ( part, i, keyword );  
        cout << text[i];
        output ( part);
        }
 
 
    delete[]str;
    delete[]part;
    
    }
    infile.close();
    system("pause");
}
 
 
int ispunctFun(const char ch)
{
                      if(!ch)return 0;
                      size_t loop = 0;
                      const char *punct = " >,(<'.\-\t)/[?]!}|:{;";
            
             while(*punct) 
                      if(ch == *(punct++))
                      loop ++;
                      return loop;                         
 }
 
void insert ( char*str,
              size_t pos, 
              char sym)
 {
               for ( size_t i = strlen(str); i >= pos; i--)
                                   str [i + 1] = str[i];
                                         str[pos] = sym;
}
 
void  fill_part ( char *part,
                  size_t start,
                  size_t length,
                  char * str )
{             
             size_t k = 0, i = 0;
 
                          for(i = start;i < length;i++,k++)
                                  part[k] = str[i];
                                  part[k] = '\0';  k = 0;
 
    }
 
 
void  insert_in_part (  char *part,
                        size_t ind,
                        char *keyword ) 
                                      
{
 
                       size_t count = 0, i, j = 0;
                       for(i = 0;part[i] != '\0';i++)
                       {
                            if(!ispunctFun( part[i])) 
                                  count ++;
                                  else count = 0;
 
                                  if(j >= strlen(keyword))
                                         j = 0;
 
                                  if(count % (ind + 1) == 0 && count != 0 && ind) 
                                  {
                                       
                                   insert(part, i + 1, keyword[j++]);
                             }
 
                                         if(count % (ind + 2) != 0 && count != 0 && !ind) 
                                  {
                                        
                                   insert(part, i + 1, keyword[j++]);
                             }
 
                        }
                       part[i] = '\0';
}
 
 
void output(char *part)
{
                cout <<  part  << endl << endl ;
                part[0] = '\0';
}


Добавлено через 32 минуты
''''''''''''''''''''''''
0
10.04.2012, 00:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 00:44
Привет! Вот еще темы с ответами:

В текстовом файле заменить все строки, начинающиеся с буквы ‘f’ на строки, начинающиеся с буквы ‘a’ - C++
Всем привет, не могли бы вы помочь написать программу Я не знаю как ее написать, но точно знаю, что нужно сделать проверку в строках,...

Подсчитать число появлений в файле каждой строчной русской буквы и вывести в файл количество повторений каждой - C++
Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) русской буквы и создать строковый файл, элементы...

Файлы: в текстовом файле подсчитать количество строк, которые начинаются с буквы - C++
В текстовом файле подсчитать количество строк, которые начинаются с буквы «ф».

Определить, какие буквы алфавита не встречаются ни разу в заданном текстовом файле - C++
Нужна помощь. Задание: Определите, какие буквы алфавита не встречаются ни разу в заданном текстовом файле text1.txt, и выведите их в файл...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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