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

Помогите решить задачу на C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Утечка памяти?! http://www.cyberforum.ru/cpp-beginners/thread367021.html
Джесс Либерти и Дэвид Хорват "Освой самостоятельно С++ за 24 часа", вырезка из листинга 15.4 (стр 233): Строка 26 - Утечка памяти? Есть сомнения, все-таки книга авторитетная, к тому же 4-е...
C++ Задача на циклы и ветвления. Все доброго утра! Помогите с одним вопросиком. В ботаническом саду растет волшебное дерево. В начале 2010 года его высота составляла L см. По неизвестному стечению обстоятельств каждый четный год... http://www.cyberforum.ru/cpp-beginners/thread367012.html
Проклятые потоки. C++
Нахрена? я изучал и читал и не нашел плюсов. смотрите: Я создал поток, подключил в него буфером строку для парсинга: -1 151 Scan3.svd PSV Version 8.7.2.2 06-Oct-11 18:00:49 None ...
C++ Захват видео с web-камеры
Добрый день!Подскажите как лучше всего работать с web-камерой на С++. Какие библиотеки использовать, может есть какие-либо книги или статьи? Хочу реализовать программу которая будет осуществлять...
C++ сравнение значения в файле с вводимым http://www.cyberforum.ru/cpp-beginners/thread367003.html
вобщем задача в том чтобы состоялась проверка вводимого значения с содержащимся в файле,как сделать коректно эту проверку, подскажите пожалуйста. p.s. на кучу библиотек и переменных не обращайте...
C++ Найти радиусы вписанной и описанной окружностей треугольника Задания для самостоятельной работы 1. Линейный вычислительный процесс 1. Треугольник задан длинами сторон. Найти длины высот. 2. Треугольник задан длинами сторон. Найти радиусы вписанной и... подробнее

Показать сообщение отдельно
blueFlame
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 8

Помогите решить задачу на C++ - C++

16.10.2011, 18:34. Просмотров 320. Ответов 0
Метки (Все метки)

В общем, суть задачи такова: у меня есть массив, допустим:
x|x| Hello | World
x|x| What|is |your| name
x|x|112233
Максимум элементов в строке массива - 100.
Нужно удалить только крайние пробелы (по 1 штуке - не более) исключая первые две ячейки в каждой строке. Я попытался набросать код, но постоянно вылезает ошибка:
C++
1
2
3
4
5
6
7
8
9
10
 // сокращение крайних пробелов
    int rsp, lsp=0;
    for (int t1=0; t1<i; t1++){
        for (int t2=3; t2<100; t2++){
            string Param=Oper[t1][t2];
                if (Param.substr(0,1)==" " && lsp==0){Oper[t1][t2]=Param.substr(1,Param.length()-1);lsp=1;}
                if (Param.substr(Param.length()-2,1)==" " && rsp==0){Oper[t1][t2]=Param.substr(Param.length()-1,1);rsp=1;}
        }
        lsp=0; rsp=0;
    }
Здесь: Oper - двухмерный массив, lsp и rsp - флаги со значениями 1 или 0 (проверка, убирал ли я в данной ячейке левый/правый пробел, чтобы не убрать ещё с десяток пробелов). Param-ом я просто сократил строки (заменил им значение Oper[t1][t2]).

Добавлено через 8 часов 5 минут
Всё, решение нашёл.
C++
1
2
3
4
5
6
7
8
9
10
 // сокращение крайних пробелов
    int lsp=0; int rsp=0;
    for (int t1=0; t1<i; t1++){
        for (int t2=3; t2<=Op[t1]; t2++){
            if (Oper[t1][t2][0]==' ' && lsp==0 && Oper[t1][t2][Oper[t1][t2].length()-1]!=' '){Oper[t1][t2]=Oper[t1][t2].substr(1,Oper[t1][t2].length());lsp=1;}
            if (Oper[t1][t2][Oper[t1][t2].length()-1]==' ' && rsp==0 && Oper[t1][t2][0]!=' '){Oper[t1][t2]=Oper[t1][t2].substr(0,Oper[t1][t2].length()-1);rsp=1;}
            if (Oper[t1][t2][0]==' ' && Oper[t1][t2][Oper[t1][t2].length()-1]==' ') Oper[t1][t2]=Oper[t1][t2].substr(1,Oper[t1][t2].length()-2);
        }
        lsp=0; rsp=0;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru