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

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

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

C++ в заданном тексте после каждой буквы «b» добавляет буквы «ak».
C++ В текстовом файле заменить все лова начинающиеся с буквы "а" на первое место, которое начинается с буквы "с"
Файлы: в текстовом файле подсчитать количество строк, которые начинаются с буквы C++
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы. C++
В текстовом файле заменить все строки, начинающиеся с буквы ‘f’ на строки, начинающиеся с буквы ‘a’ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.03.2012, 19:19     В текстовом файле после каждой 2 буквы вставлять буквы из слова #2
хммм если у тебя есть файл так скачай из него весь текст отформатирую как надо это не сложно и потом весь текст закинь обратно в тот же очищенный файл
Betokuha
 Аватар для Betokuha
32 / 29 / 9
Регистрация: 05.03.2012
Сообщений: 114
09.03.2012, 00:25     В текстовом файле после каждой 2 буквы вставлять буквы из слова #3
точно сработает копирование. просто создать вторую строку и копировать в неё посимвольно всё, кроме пробелов. после каждых два символа копировать из 'привет' index символ (там еще надо сделать сброс index когда конец слова)
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
09.03.2012, 16:35     В текстовом файле после каждой 2 буквы вставлять буквы из слова #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 )
Betokuha
 Аватар для Betokuha
32 / 29 / 9
Регистрация: 05.03.2012
Сообщений: 114
09.03.2012, 17:00     В текстовом файле после каждой 2 буквы вставлять буквы из слова #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;
}
как то так)
тока я пробелы не удалял...
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
11.03.2012, 23:17  [ТС]     В текстовом файле после каждой 2 буквы вставлять буквы из слова #6
спасибо за идею, MrCold, ну только есть проблемма. вставка происходит в тексте с рускими буквами и запись должна осуществляться в тектовый файл при вставке ключа на русском языке.
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
18.03.2012, 23:32  [ТС]     В текстовом файле после каждой 2 буквы вставлять буквы из слова #7
есть еще одно похожее задание!
в текстовом файле в слове ( рус буквы) найти каждую 3 букву и переписать эти буквы в этот файл за первоначальным словом.
потом взять другое слово и вставить эти буквы одну за одной как и в предыдущей задаче в цикле через 2) вот придумают же такое...)
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
19.03.2012, 00:12     В текстовом файле после каждой 2 буквы вставлять буквы из слова #8
_Sandra_, не знаю как будет со временем
Но хотелось бы узнать задание .Честно - не понял :
первоначальным словом -- ? может первым ?
другое слово -- ?
вставить эти буквы ... куда ?
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
22.03.2012, 22:54  [ТС]     В текстовом файле после каждой 2 буквы вставлять буквы из слова #9
к примеру слово - параллелипипед
вот выписываем каждую 3 букву и выходит - рлип
и берем слово картошка))))
значит выйдет - карртлошикап.
вот так нужно получить)) и все операции с русскими буквами
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.03.2012, 02:34     В текстовом файле после каждой 2 буквы вставлять буквы из слова #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
Десятую  су  вессунсуу подряд  дд  в Совете  ве  вевтеевреавнеовве Центрального  нано  ранйаонноан проходят  од  всотдроедчоид поэтов-фронтовиков  эвртив .Тоэлвьрктои вот  т  с годами  ди  подэитдиичдеисдкиидйи клуб, у  веутуеуруаунуоуву участников  ано  Веалниокаонйо Отечественной, есео  воейснеыо становится  авс  поахвосжаивмс на    тв вечера. ча  дрчуагчиахч
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
30.03.2012, 01:00  [ТС]     В текстовом файле после каждой 2 буквы вставлять буквы из слова #11
MrCold, спасибо Вам большое)) выручили с идеями в который раз)))
когда появится что-то интересное, я еще раз напишу)))
_Sandra_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 22
07.04.2012, 22:04  [ТС]     В текстовом файле после каждой 2 буквы вставлять буквы из слова #12
новое задание)) в принуипе тоже самое, только исходный тескт нужно разделить на 4 части и в каждую из них вставлять ключ по- разному, т.е. через 1, через 2, 3 и 4 буквы. и поменять части местами, причем для изменение мест частей ( все 16 позиций) нужны все варианты... понимаю, что очень дурное задание, но если сможете помочь... буду благодарна) MrCold, надеюсь на Вас)
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.04.2012, 23:52     В текстовом файле после каждой 2 буквы вставлять буквы из слова #13
_Sandra_, тема совсем затерлась, поэтому пожалуйста:

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

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

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

От себя, чем смогу помогу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 00:44     В текстовом файле после каждой 2 буквы вставлять буквы из слова
Еще ссылки по теме:

После каждой 2 Буквы вставлять строку символов MAU C++
C (СИ) - Ввести строку символов.И После каждой 2 Буквы ( Именно буквы ) Вставить слово C++
Определить, какие буквы алфавита не встречаются ни разу в заданном текстовом файле C++

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

Или воспользуйтесь поиском по форуму:
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
10.04.2012, 00:44     В текстовом файле после каждой 2 буквы вставлять буквы из слова #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 минуты
''''''''''''''''''''''''
Yandex
Объявления
10.04.2012, 00:44     В текстовом файле после каждой 2 буквы вставлять буквы из слова
Ответ Создать тему
Опции темы

Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru