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

Как исправить ошибку в коде? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамическое программирование - нужно отследить подходящие элементы http://www.cyberforum.ru/cpp-beginners/thread1497411.html
Мне нужна задача, которую, в принципе, можно назвать "облегченной задачей о ранце". Я ввожу выдерживаемый вес ранца, а на следующей строке - вес предметов (цифра 0 означает окончание ввода). Если у меня вес ранца 5, а предметы весом 2, 2, 2, 1, 1 то я введу 5 2 2 2 1 1 0Я этим кодом могу узнать только ВОЗМОЖНОСТЬ такого заполнения ранца. Элемент массива dp будет true, если с помощью j первых...
C++ Дерево Хаффмана Здравствуйте. Хотел узнать как работает дерево Хаффмана и 4 дня изучал материалы в интернете (статьи, видеоуроки) и т.д.), написал программу, которая кодирует и декодирует по этому алгоритму. Суть вопроса вот в чем: Программа то все делает, но как дать возможность другим программам читать эти самые файлы по алгоритму Хаффмана ? Ну вот я создаю дерево, потом записываю путь к каждому символу в... http://www.cyberforum.ru/cpp-beginners/thread1497410.html
Специализация метода темплейтного класса вложенного в темплейтный класс C++
Есть два темплейтных класса template <bool T2> class B { void b(); } template <> void B<true>::b() {}
OpenGL, трехмерный график OpenGL
Начинаю по чуть-чуть изучать программирование , попалась для меня немного странная задачка , нужно вывести график функции z=cos(r)/r , но при этом r=sqrt((x^2)*(y^2)). выдает много ошибок , прошу помощи в их исправление или советов. #include<openGL/gl.h> #include<Glut/glut.h> #include <math.h> #include <stdlib.h> float f(float x, float y , float r , float z) { return...
C++ Крестики-нолики - алгоритм для игры против ПК http://www.cyberforum.ru/cpp-beginners/thread1497338.html
Смотрю, уже только ленивый не сделал. Собственно это я. Вчера сел, написал свои 200 строк какашкокода для любого поля с любым количеством требуемых чисел для победы по всем направлениям.. С победой пришлось повозиться, но все вышло. Собственно, куда смотреть в отношении алгоритма для игры против ПК? Очевидно, что рандом так себе играет. Пока есть следующий вариант: if Проверить возможность...
C++ Запись двумерного массива в файл В общем нужно записать двумерный массив в фаил, но что то ни как не получается. //magicQuad.h #ifndef MAGICQUAD_H #define MAGICQUAD_H #include <iostream> using std::cout; using std::endl; class magicQuad { подробнее

Показать сообщение отдельно
Никита Однороб
107 / 87 / 13
Регистрация: 21.08.2012
Сообщений: 352
12.07.2015, 11:49     Как исправить ошибку в коде?
Вот рабочий вариант с использование 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
46
47
48
49
50
51
#include <iostream>
#include <string>
 
#define f(i, s, n) for(int i = s; i < n; i++)
 
using namespace std;
 
int _find(string str, string substr) {//Ищем substr в str без учета регистра
    char c;
    f(i, 0, str.length()) {
        c = str[i];
        if (c >= 'A' && c <= 'Z') str[i] = c - 'A' + 'a';
    }
    f(i, 0, substr.length()) {
        c = substr[i];
        if (c >= 'A' && c <= 'Z') substr[i] = c - 'A' + 'a'; 
    }
    return str.find(substr);
}
 
int main() {
    string names[5];
    int cnt = 5; //Кол-во имен
    f(i, 0, cnt) cin >> names[i]; //Считали имена
    
    string text = "prepodavatel Andriyanov i Gruppa studentov: mixajlov, Zajceva, Linickij, Dovzhenko, Chudak. Sidyat na pare i delayut laby. vse Paryatsya."; //Текст, который надо исправить
    
    //К нижнему регистру
    f(i, 0, text.length()) {
        char c = text[i];
        if (c >= 'A' && c <= 'Z') text[i] = c - 'A' + 'a';
    }
    
    //Сначала заменим имена
    f(i, 0, cnt) {
        int pos = _find(text, names[i]);
        if (pos > 0 && text[pos] >= 'a' && text[pos] <= 'z') text[pos] = text[pos] - 'a' + 'A';
    }
    
    //Заменяем остальные слова
    text[0] = text[0] - 'a' + 'A';
    f(i, 1, text.length()) {
        if (text[i] == '.') {
            if (text[i+1] == ' ') text[i+2] = text[i+2] - 'a' + 'A';
            else text[i+1] = text[i+1] - 'a' + 'A';
            i++;
        }
    }
    
    cout << text;
}
 
Текущее время: 20:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru