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

Инвертировать строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив. Найти произведение элементов с четными индексами http://www.cyberforum.ru/cpp-beginners/thread760712.html
Дан массив целых чисел из n элементов. Найти произведение элементов с четными индексами. Найти среднее арифметическое положительных элементов массива. Вывести индексы тех элементов, значения которых по модулю меньше заданного числа В. Найти номер первого однозначного числа.
C++ Метод сортировки Доброго времени суток господа, имеется программа которая сортирует массив(состоящий из 0 и 1), так чтобы в начале были 0, а потом 1. Используемый метод сортировки не совсем устраивает, хотелось бы проводить его за 1 цикл. Жду ваших предложений, советов по этому поводу, код программы прилагаю. http://www.cyberforum.ru/cpp-beginners/thread760686.html
Удаление массива указателей C++
есть класс: class test { private: static test **list; static int count_object; public: void mesto::Add() {
Переписать из одного массива в другой C++
Дан массив целых чисел из n элементов. Известно, что в массиве все элементы по модулю меньше 100. Переписать в другой массив из данного сначала все однозначные числа, затем все двузначные, сохранив порядок их следования.
C++ Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента http://www.cyberforum.ru/cpp-beginners/thread760675.html
Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
C++ Найдите количество абсолютных и локальных минимумов и максимумов среди элементов одномерного массива Найдите количество абсолютных и локальных минимумов и максимумов среди элементов одномерного массива. подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
13.01.2013, 21:23     Инвертировать строки
Оно? Только не мешало бы доработать
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <fstream>
class Stack{
private:
    struct Node{
        char symbol;
        Node *next;
    };
    Node * top;
    size_t size;
public:
    Stack();
    ~Stack();
    char Top();
    size_t Size();
    Stack & Push(char);
    bool IsEmpty();
    char Pop();
};
 
Stack::Stack(){
    this->top=NULL;
    this->size=0;
}
 
Stack::~Stack(){
    if (!this->top) return;
        Node * temp=this->top;
        while (this->top){
            temp=this->top;
            this->top=this->top->next;
            delete temp;
        }
}
 
bool Stack::IsEmpty(){
    return (this->size==0);
}
char Stack::Top(){
    if (this->top)
        return this->top->symbol;
    return 0;
}
char Stack::Pop(){
    if (!this->top) return 0;
    Node * temp;
    char rez=this->top->symbol;
    temp=this->top;
    this->top=this->top->next;
    delete temp;
    --(this->size);
    return rez;
}
Stack & Stack::Push(char ch){
    Node * temp=new Node;
    temp->symbol=ch;
    temp->next=this->top;
    this->top=temp;
    ++(this->size);
    return *this;
}
size_t Stack::Size(){
    return this->size;
}
 
int main(){
    Stack st;
    char * buffer=NULL;
    std::ifstream ifile("input.txt",std::ios::binary);
    std::ofstream ofile("output.txt",std::ios::binary);
 
    std::cout<<"Wait..."<<std::endl;
    ifile.seekg(0,std::ios::end);
    fpos_t size=ifile.tellg();  
    buffer=new char [size];
    ifile.seekg(0,std::ios::beg);
    ifile.read(buffer,size);
    for(char *p=buffer,*pend=buffer+size;p<pend;++p){
        if(*p==10)//Эти условия в Linux и MAC надо убрать оставить только st.Push(*p);
            *p=13;
        else
            if(*p==13)
                *p=10;
        st.Push(*p);
    }
    for(char *p=buffer;!st.IsEmpty();++p){
        *p=st.Pop();
    }
    ofile.write(buffer,size);
    delete [] buffer;
    std::cout<<"Operation has been complited"<<std::endl;
    return 0;
}
Название: Безымянный.jpg
Просмотров: 126

Размер: 9.9 Кб
 
Текущее время: 06:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru