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

Строка символов s1, s2, . , sn. Зеркальное отражение строки без последнего символа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из двух массивов сформировать третий, и записать в него элементы http://www.cyberforum.ru/cpp-beginners/thread1112311.html
Помогите написать программу, заранее спасибо. Из двух массивов сформировать третий, и записать в него элементы этих двух массивов с чётными индексами. Вычислить среднее арифметическое положительных элементов третьего массива.
C++ задание ребят помогите сделать мне эти лабы... я не понила ни слова что надо сделать. скоро все сдавать у меня ничего не готово. помогите молодой не понимающей девушки сделать эти лабы. кто как сможет так и помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread1112282.html
C++ Множественные переопределения сбивающие компилятор столку
Добрый вечер! Пытаясь много раз сделать свой небольшой интерпретатор придуманного или с-подобного языка, я множество раз падал в ямы из которых вылезал, попадав в ямы поглубже... Не кидайте тапками говоря: нафига пирачишь, не твой код и не лезь туда... сам сделай..., я хочу понять как это сделано пытавшись все разобраться на практике меняя код, с целью понятия как он работает.(теория не помогла)...
Линейный однонаправленный список C++
Добрый вечер! Задача: L – линейный однонаправленный список Проверить, упорядочены ли элементы списка по алфавиту. Подскажите как сделать список классом? (без использования структур)
C++ Вертикальный скролл http://www.cyberforum.ru/cpp-beginners/thread1112231.html
Здравствуйте! Не могу разобраться с вертикальным скроллом. Скиньте, пожалуйста, пример с рабочим вертикальным(ли горизонтальным) скроллом. (желательно WinAPI).
C++ Нужно написать рекурсивную функцию, которая определит - является ли симметричной часть строки от n, до z Нужно написать рекурсивную функцию, которая определит - является ли симметричной часть строки от n, до z. Выдает ошибку: #include <iostream> bool simetrija(int start, int end, int *p); using namespace std; int main () { int mas={1,2,3,4,5,5,4,3,2,1}, n, z; cout<<"\ns kakogo chisla nachinat':"; cin>>n; подробнее

Показать сообщение отдельно
Anwer
 Аватар для Anwer
0 / 0 / 0
Регистрация: 02.01.2014
Сообщений: 49
02.04.2014, 11:05  [ТС]     Строка символов s1, s2, . , sn. Зеркальное отражение строки без последнего символа
Подскажите, зачем выполнялись эти действия, пожалуйста. смысла их не пойму P.S. все прокомментировал
mirror[j] = '\0'; // Вот это не понял что это О_о, это или массив j, который равен 0 символу или что-то другое О_о
Delete (mirror); // и тут же её удаляем?? Зачем О_о...
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
#include <iostream>
using std::cout;
 
int IsPalindrom (char *str)
{   int i = -1, j = strlen(str); // создаем целочисленную переменную i со значением -1, создаем целочисленную переменную j и присваиваем ей значение длины строки str 
    while (++i < --j) // выполняется цикл while, где переменная i увеличивается на 1, а переменная j уменьшается на 1
        if (str[i] != str[j]) // Условие, если строка из i символов, равна строке из j символов, возвращаем значение 0
            return 0;
    return 1;
}
 
char *Mirror (char *str)
{   int size = 2*strlen(str); // создаем целочисленную переменную size и присваиваем ей, значение длины строк * 2, т.е. было к примеру, было 8 символов, стало 16.
    char *mirror = new char [size]; // создаем динамический массив, размера size    
    int i = -1, j = size-1; // создаем опять целочисленную переменную i и присваиваем ей -1, создаем целочисленную переменную j со значением, размер переменной size -1, т.е. строка -1 символ от неё.
    mirror[j] = '\0'; // Вот это не понял что это О_о, это или массив j, который равен 0 символу или что-то другое О_о
    while (++i < --j) // опять цикл while
        mirror[i] = mirror[j] = str[i]; // Приравниваем, массивы с изначальной строкой, для сравнения, и присваиваем значение i-го массива к i-й строке.
    mirror[i] = str[i];
    
    return mirror;
}
 
void Delete (char *str)
{   delete [] str; // освобождаем динамическую память
}
 
 
int main()
{   char *s = "12345"; // создаем строку
 
    if (IsPalindrom (s)) // проверяем на палиндромность, выполняем функцию которую мы реализовали ранее.
        cout << s << "\nAlready palindrom. No changes\n";
    else
    {   cout << s << "\nNot palindrom. Let's transform it\n"; // как я понял, мы исправляем и подгоняем строку под полиндром.
        char *mirror = Mirror (s); // создаем указатель на миррор, и присваиваем ему значение, строки которая была введена выше. 
        cout << mirror; // выводим строку
        Delete (mirror); // [B]и тут же её удаляем??[/B] Зачем О_о...
    }
    
    getchar();
    return 0;
}
 
Текущее время: 10:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru