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

Обработка текста, разделяемого на слова - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возвращение трех значений http://www.cyberforum.ru/cpp-beginners/thread320432.html
Как в функции возвратить три значения?
C++ Курсовая по ООП Здравствуйте, столкнулась с проблемой, необходимо сделать курсовую, а в програмировании на С++ полный ноль. Если у кого есть возможность, подскажите. Работа довольно объемная, а времени осталось мало. Есть даже пример похожей работы, но просидев пару часов, так и не смогла ничего понять. Вот само задание, зеленым выделены пункты которые необходимо выполнить. А это пример выполненной... http://www.cyberforum.ru/cpp-beginners/thread320428.html
C++ Использование стека в преобразовании
Наткнулся на одну проблему и нуждаюсь в помощи. задание следующее. Нужно преобразовать инфиксное выражение в постфиксное, используя стек. то есть например из "4+(6-4)*9" нужно получить "4 6 4 - 9 *+" и вывести это на экран
работа со структурами C++
#include<conio.h> #include<iostream.h> #include<string.h> main() { int n=0, i, zapros, flag=0; char s; struct peresdachi {char FAM ;
C++ Записи: Задать список спортсменов, распечатать сведения о тех из них, кто занимается плаваньем http://www.cyberforum.ru/cpp-beginners/thread320403.html
Задать список спортсменов, распечатать сведения о тех из них, кто занимается плаваньем. Указать возраст,сколько лет они занимаются спортом. В программе Turbo C(С++)
C++ Выяснить, сколько в строке цифровых символов Дана фраза, в которой слова разделены одним пробелом, а сама фраза заканчивается точкой. Выяснить, сколько в ней цифровых символов. В Turbo C (С++). подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
30.06.2011, 23:18     Обработка текста, разделяемого на слова
Тестируй
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
#include <stdio.h>
#include <string>
#include <iostream>
//#include <string.h>
using namespace std;
 
// функция по замене слов, захват символов буквы и цифры - isalnum
bool str_replace(std::string&  str, const char*  rep, const char*_new) {
        int first = 0;
        int kolichestvo= 0;
 
        int i= 0;
 
        //ПОдсчитываем количество заменяемых слов
        while(1) {
            int last = str.find(rep, first);
            if(last == std::string::npos)
                break;
            else {    
             if (!isalnum    (  str [last+ strlen(rep)])) {
              if (last) {
               if (!isalnum(str[last- 1])) {
                kolichestvo++; 
                first = last + strlen(rep);
               }
              }
              else {
                 kolichestvo++; 
               i++;
               first = last + strlen(rep);
              }
             }
             else {
              first+= strlen(rep);
             }
            }
        }
        if (!i) return false;
 
        //Формируем новую строку 
        string new_slovo; 
        for (int i= 0; i<kolichestvo; i++)
         new_slovo+=_new;       
 
        
        
        //заменяем 
        first = 0;
        while(1) {
            int last = str.find(rep, first);
            if(last == std::string::npos)
                break;
            str.replace(last, strlen(rep), new_slovo);
            first = last + strlen(rep);
        }
 
        return true;
}
 
 
 
 
int  main() {
 
   std::string  str = "";
 
   // открыть файл ввода
   FILE*  fp         = fopen("input.txt", "r");
   char b[512];
   while(! feof(fp) ) {
        fgets(b, 512, fp);
        str.append(b);
   }
   fclose(fp);
 
   // изменить слово на другое
//   cout<< "Вводи слово, которое надо заменить и слово НА которое надо заменить"<< endl;
//   string old_slovo, new_slovo;
//   cin>> old_slovo>> new_slovo;
//   str_replace(str, old_slovo.c_str(), new_slovo.c_str());
 
//    изменить слово на другое
//   str_replace(str, "sdfgsadg", "programmirovanie");
//    изменить слово на другое
   if (!str_replace(str, "qw", "123")) {
    cout<< "fig tebe a ne slovo"<< endl;
    getchar ();
   }
 
   // сохранить в файл 
   fp = fopen("print.txt", "w");
   fputs(str.c_str(), fp);
   fflush(fp);
   fclose(fp);
 
   // test
  //  puts(str.c_str());
}
 
Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru