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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Run-Time Check Failure #3 - The variable 'i' is being used without being initialized http://www.cyberforum.ru/cpp-beginners/thread514541.html
#include "stdafx.h" #include "cstdlib" #include "cstring" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL, "Russian"); const int n=20;
C++ Организация клиента сервера передачи данных по Com порту есть 2 ПК соединенных через COM порт. Надо организовать между ними связь. То есть 1 комп -сервер, другой клиент. Меня интересует тут все... 1) как организовать структуру программ. 2) что... http://www.cyberforum.ru/cpp-beginners/thread514537.html
обьясните задание C++
Захватить память для массива из 10 структур Заполните массив данными из файла "2.dat". Вывести информацию о маршрутах, имеющих определенный пункт в качестве начального или конечного. Высчитать...
С++. Действие с числом и составляющими его цифрами. C++
Помогите пожалуйста с заданием... ооочень нужно. Задание: Дано трехзначное число. Найти сумму и произведение его цифр. Вывести число, полученное при прочтении исходного числа справа налево....
C++ непонятная строка !!! http://www.cyberforum.ru/cpp-beginners/thread514512.html
помогите мне .я не понимаю функцию у одной строки .объясните детально если не трудно #include <iostream> using namespace std; /// class Distance { private: int feet; float inches; ...
C++ Динамический массив объектов структуры AEROFLOT Подготовьте массив указателей на AEROFLOT на 50 элементов. Считайте все записи из файла "5.dat" . Для чтения каждой отдельной записи осуществите динамический захват памяти. ... подробнее

Показать сообщение отдельно
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.03.2012, 02:34
Как смог, сразу написал . Надеюсь не опоздал .

Цитата Сообщение от _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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru