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

Удаление фрагмента из строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что вернет функция? http://www.cyberforum.ru/cpp-beginners/thread740645.html
Задача была на НОД. Есть разные способы его нахождения, но вот столкнулся с данным кодом и не понимаю как он работает. Насколько я знаю, функция возвращает один аргумент. Что вернет функция в данном случае? Вот кусочек кода. Не понимаю суть реторна. Спасибо. else if(x % 2 == 0 && y % 2 == 0) return 2 * nod(x / 2, y / 2); else if(x % 2 == 0 && y % 2 != 0) return nod(x /...
C++ неправильный цикл for class anketa: public fio, public svedeniya { public: friend void run(anketa object1, int n); double sort(anketa *,int n); // прототип функции сортировки по среднему балу double horoshist(anketa *,int n); // прототип функции вывод студентов у которых 4 и 5 }; double anketa::sort(anketa* ob2,int n) http://www.cyberforum.ru/cpp-beginners/thread740642.html
Не могу совладать - подскажите как формулу написать C++
хотя бы первую строку для примера
C++ Создать функцию, позволяющую выяснить, присутствует ли в строке введенная с клавиатуры буква (Использовать указатели)
помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... Задача 5. Ввести строку. Создать функцию, позволяющую выяснить, присутствует ли в строке введенная с клавиатуры буква. Если да, то заменить все её вхождения парой символов „$$”. Если этой буквы нет в строке, то вывести соответствующее сообщение. (Использовать указатели). Хоть что-то,если не сложно! ЗАРАНЕЕ СПАСИБО!!!
C++ Из матрицы получить массив, каждый элемент которого равен среднему арифметическому каждой строки матрицы http://www.cyberforum.ru/cpp-beginners/thread740615.html
Очень прошу помочь! Из 2мерной квадратной матрицы (7х7) получить 1мерный массив, каждый элемент которого равен среднему арифметическому каждой строки матрицы. это в с++ (работаю в Builder)
C++ Создать два массива. Вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10 помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... Задача 4. Определить два одномерных массива А(19) и В(16); первый ввести с клавиатуры, а второй задать начальной инициализацией. Используя собственную функцию, вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10. (Использовать указатели) Хоть что-то,если не... подробнее

Показать сообщение отдельно
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
24.12.2012, 04:00     Удаление фрагмента из строки
Еще можете для тренировки сделать проверку на правильность скобок. Вот алгоритм:
Заведем count=0 для скобок. Делаем цикл по строке
1) Если очередной символ - открывающая скобка, то count++ (тоже, что count=count+1)
2) Если закрывающая, то count-- (тоже, что count=count-1)
Если в конце просмотра строки, счетчик никогда не был меньше нуля, и в конце цикла равен нулю, то скобочное выражение правильное.
Цитата Сообщение от Simkara Посмотреть сообщение
тогда ))(( он посчитает правильным, нужно еще учитывать порядок

написал функцию chek для проверки скобок
хочу использовать её в main, но выводит ошибку при передаче строки в функцию "invalid conversion from char" (35 строка)

...
Не посчитает правильным. В соответствии с проверкой в конце алгоритма счетчик на первой скобке окажется меньше нуля(отрицательным), и, как следствие, скобочноее выражение будет неправильным.

Добавлено через 11 минут
Вот немного модифицировал ваш код:
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
#include <iostream>
using namespace std;
 
inline bool chek (char * s)
{
    bool z=false;
    int i=0,c=0;
    while (s[i])
    {
        if (s[i]=='(') { c++; } // 1
        if (s[i]==')') {        // 2
            if(c==0)        // если очередной count - отрицательный(ошибка)
                return false;
            else
                c--;
        }
        i++;
    }
    if (c==0) // проверка в конец алгоритма
        return true;
    else
        return false;
}
 
 
int main()
{
    char s[100];
    bool c;
    cin.getline (s,100);
    c=chek(s);
    cout << c;
    
    cin.get();
    cin.get();
    return 0;
}
Помимо аргумента, вы не установили i в 0.
 
Текущее время: 04:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru