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

Рекурсия. Удаление лишних пробелов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Передача символьного массива в качестве аргумента http://www.cyberforum.ru/cpp-beginners/thread1177355.html
#include <iostream> using namespace std; void mazeTraverse( char maze ); int main() { char a= { "############", "#...#......#", "..#.#.####.#",
C++ Найти ошибку и оформить вывод массива, как функцию Доброго времени суток! Помогите найти ошибку. И оформить вывод массива как функцию. Заранее благодарю. #include "stdafx.h" #include <math.h> #include <iostream> using namespace std; int norm(int* matrix,int n) { int sum = 0; http://www.cyberforum.ru/cpp-beginners/thread1177338.html
Сделать либо так, чтобы в файл записывались рандомные матрица и вектор, либо из файла считывать C++
ребят есть вот прога, она заполняет рандомами матрицу и вектор и перемножает. И есть соответственно проги для чтения из файла или записи в файл. Не могу слить в одну. Нужно сделать либо чтобы в файл записывались рандомные матрица и вектор, либо из файла считывать. Сама прога #include <iostream> #include <math.h> // библиотека математических функций using namespace std; int main() ...
Построение графика функции по точкам (Dev-C ) C++
Подскажите как построить график по точкам(Dev-C++), какая это библиотека и где можно почитать основные команды?
C++ Заполнить матрицу случайными числами. На побочной http://www.cyberforum.ru/cpp-beginners/thread1177299.html
Заполнить матрицу случайными числами. На побочной диагонали разместить суммы элементов которые лежат на той той же строке и столбце.
C++ Матрица свёртки Добрый день! Нашёл код применения фильтра на изображени, написанный на С#.public static class Convolution { public static Bitmap Apply(Bitmap input, double kernel) { //Получаем байты изображения byte inputBytes = BitmapBytes.GetBytes(input); byte outputBytes = new byte; int width = input.Width; int height = input.Height; подробнее

Показать сообщение отдельно
_Ivana
2174 / 1379 / 123
Регистрация: 01.03.2013
Сообщений: 4,115
Записей в блоге: 2
01.05.2015, 02:47     Рекурсия. Удаление лишних пробелов
Ну собственно вот, один пробег инкрементирующимся указателем по строке, одна хвосторекурсивная функция:
C++
1
2
3
4
5
6
7
8
9
10
void task(char *s) {
    char p = *(s-1);
    int r = p<' ' ? p + (*s==' ' && *(s-1-p)==' ') : (p==' ' && *s==' ' ? 1 : 0);
    char *d = s-r; *d=*s; if (*s) {if (r) *s=r; task(s+1);}
}
int _tmain(int argc, _TCHAR* argv[]) {
    char s[] = "       A       string without      double     spaces  ";
    task(s+1); cout << ">" << s << "<" << endl;
    system("pause"); return 0;
}
Код пробела 32, строка может содержать символы от него и выше по коду, и иметь не более 31 дублирующихся пробелов (не дублирующиеся пробелы не считаются). Ограничение конечно серьезное, но зато сложность как у лучшего итеративного алгоритма - O(n).
 
Текущее время: 23:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru