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

Строки. Проверьте код, пожалуйста. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изображение физического маятника http://www.cyberforum.ru/cpp-beginners/thread416669.html
здравствуйте, есть исходник на делфи программы по изображению физического маятника, какими способами ее можно реализовать на с++? unit Unit1; interface
C++ Подмена операции сложения на умножение. Си!!! Добрый вечер, господа! Вынужден обратиться снова к вам за помощью. Мне дали одно интересное задание: подменить операцию сложения на умножение. Я сначала написал на С++ через классы и перегрузку операторов, но преподаватель сказал, что нужно что-то похожее реализовать на языке си с подменой адресов. Т.е., как я понял, нужно найти адреса операций и обменять их через указатели. Возможно ли такое... http://www.cyberforum.ru/cpp-beginners/thread416654.html
Нотации массивов и указателей C++
Айвор Хортон в своей книге Beginning Visual C++ 2010 утверждает (стр. 183, 2-й абзац сверху) что нотация указателей работает быстрее нотации массивов. Хочется, чтобы опытные люди подтвердили это или опровергли.
C++ функция символьной строки
Дана символьная строка.Написать программу, которая оставляет в исходной строке латинские буквы. Обработку строки оформить в виде функции, ввод и вывод данных - в основной программе. тут непонятно как оставить все буквы. выделять какие то по отдельности умею но не перечислять же их всех.
C++ задача с матрицей http://www.cyberforum.ru/cpp-beginners/thread416636.html
Задача:даны марица А и массив B. Надо написать программу,которая вычисляет массив С, состаящий из элементов А, расположенных между первым и последним положительным элементами каждого столбца, если сумма элементов, распложенных между первым и последним положительными элементами отсутствуует в массиве В.Ввод данных,вывод результата и вычислений оформить в виде отдельных функций. мой вариант:...
C++ Преобразование в строку Здравствуйте, уважаемые господа. Задача такая: мне необходимо объединить два числа, содержащие только 0 и 1 (по 5 цифр в каждом), в одно, а через некоторое время разбить получившееся число снова на два разных. Начальные числа (те, что содержат только 0 и 1), разумеется, всегда разные — зависит это от условий. Лучше всего для этого способа подошёл бы такой подход: подробнее

Показать сообщение отдельно
John_10
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 5
24.12.2011, 23:17     Строки. Проверьте код, пожалуйста.
Здравствуйте! Проверьте пожалуйста код, а то у меня не выполняется пункт "Б".
Вот условие задачи -

Задан текст, состоящий из строк произвольной длины. Строки разделаются одним символом или несколькими, называемыми разделителями. Разделители одинаковы для всего текста. Текст заканчивается комбинацией двух специальных символов, отличных от разделителя.
Написать программу, выполняющую над текстом следующую последовательность действий:
А) Определить (считая от начала текста) координаты (номер строки и номер символа в строке) символов, которые задаются в исходных данных;
Б) сформировать новый текст, состоящий из строк заданного текста, в каждой из которых любой из заданных символов встречается не более одного раза.

А вот код -
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
#include <iostream>
#include <string>
#include <fstream>
#include <set>
 
int main()
{
    setlocale( LC_ALL, ".1251" );
    std::ifstream in( "input.txt", std::ios::in );
    std::ofstream out( "output.txt", std::ios::out );
 
    char c;
    std::cout << "Введите символ: ";
    std::cin >> c;
 
    std::string s;
    unsigned int index = 0;
    
    // Читаем файл до конца по строкам
    while ( std::getline( in, s ) )
    {
        // Если есть нужный символ в строке
        if ( s.find( c ) != std::string::npos )
        {
            std::cout << index + 1 << " строка, позиции: ";
            for ( size_t i = 0; i < s.length(); i++ )
                if ( s[ i ] == c )
                    std::cout << i + 1 << " ";
            std::cout << std::endl;
        }
        // Увеличиваем индекс прочитанных строк
        index++;
    }
    in.close();
    std::set < char > charset;
 
    in.open( "input.txt" );
    while ( std::getline( in, s ) )
    {
        unsigned int i = 0;
        bool Checker( false );
 
        // Пока не конец строки...
        while ( i < s.length() && !Checker )
        {
            // Проверяем, есть ли повторные символы
            Checker = ( charset.find( s[ i ] ) != charset.end() );
            if ( !Checker )
                // Если нет, то добавляем символ к множеству
                charset.insert( s[ i ] );
            i++;
        }
        if ( !Checker )
            out << s << std::endl;
        charset.clear();
    }
        
    in.close();
    out.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru