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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
KattyAlex
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 26
#1

как понять код? - C++

24.02.2013, 02:03. Просмотров 716. Ответов 18
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string.h>
int main()
{
    char str[10] = "abcdef";
    int slen = strlen(str);
    for(int i=0;i<slen/2;i++)
    {
        str[i] = str[i] + str[slen-i-1];
        str[slen-i-1] = str[i] - str[slen-i-1];
        str[i] = str[i] - str[slen-i-1];
    }
    return 0;
}
расшифруйте, пожалуйста, запись в 11-ой строке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 02:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как понять код? (C++):

Как понять код? - C++
этот код запускается , но как понять что он именно выполняет? может быть кто ни будь прокомментирует? #include &lt;conio.h&gt; ...

Не понять как работает код - C++
int main() { int i = 0; for (;;) { i = 0; while (GetAsyncKeyState(0x30)) { if (i == 0) {

Как понять нормальный у тебя код или нет? - C++
Сейчас в процессе изучения C++ столкнулась с тем, что подсматриваю в интернете кто и как выполняет те или иные задачи. Еще ни разу не было...

Не могу понять как работает этот код в деталях - C++
dg1-&gt;Rows-&gt;Clear();//Очищяет в датагриде строки ifstream infile (StrToChar(openFileDialog1-&gt;FileName));//Чтение из файла ...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Не могу понять код - C++
Напишите, пожалуйста, что означает каждая строчка кода #include &lt;stdio.h&gt; #include &lt;string.h&gt; char s,t,c1,c2; bool...

18
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
24.02.2013, 02:09 #2
Переменной slen присваиваем длину строки str.
0
palva
2681 / 1908 / 286
Регистрация: 08.06.2007
Сообщений: 7,021
Записей в блоге: 4
24.02.2013, 02:10 #3
Цитата Сообщение от KattyAlex Посмотреть сообщение
int slen = strlen(str);
объявить целую переменную slen и записать в нее длину строки str.
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.02.2013, 02:10 #4
hide
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.02.2013, 02:11 #5
Переменной типа slen присваивается значение, равное количеству символов(видимых) в строке str.
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
24.02.2013, 02:12 #6
Переменной slen присваивается значение длины массива символов str. В данном случае длина str = 6 (не считая \0).
0
Kuzia domovenok
2041 / 1886 / 172
Регистрация: 25.03.2012
Сообщений: 6,499
Записей в блоге: 1
24.02.2013, 04:41 #7
перестановка символов в строке в обратном порядке.
строки 8-10 обмен местами двух символов симметрично, относительно середины строки.
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
24.02.2013, 11:23 #8
Цитата Сообщение от KattyAlex Посмотреть сообщение
расшифруйте, пожалуйста, запись в 11-ой строке.
C++
1
}
ну, это закрывающая фигурная скобка цикла for.
1
Catstail
Модератор
22904 / 11270 / 1832
Регистрация: 12.02.2012
Сообщений: 18,482
24.02.2013, 11:34 #9
Это плохая реализация инвертирования строки (т.е. перестановки ее символов в обратном порядке). Плохая, потому, что сложение байтов может вызвать переполнение...
0
KattyAlex
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 26
24.02.2013, 22:02  [ТС] #10
а Вы могли бы написать мне хорошую реализацию?
0
Kuzia domovenok
2041 / 1886 / 172
Регистрация: 25.03.2012
Сообщений: 6,499
Записей в блоге: 1
24.02.2013, 22:10 #11
и такая покатит.
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
24.02.2013, 23:20 #12
эта лучше

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string.h>
 
int main()
{
    char str[10] = "abcdefg";
    char temp;
    int slen = strlen(str);
    for(int i=0;i<slen/2;i++)
    {
        temp=*(str+i);
    *(str+i) = *(str + (slen-i-1));
        *(str + (slen-i-1)) = temp;
        
    }
    return 0;
}
0
Kuzia domovenok
2041 / 1886 / 172
Регистрация: 25.03.2012
Сообщений: 6,499
Записей в блоге: 1
24.02.2013, 23:22 #13
Цитата Сообщение от booker Посмотреть сообщение
эта лучше
Это ещё чем, интересно? оператор [] ведь абсолютно эквивалентен твоим этим
Цитата Сообщение от booker Посмотреть сообщение
*(str+i);
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
25.02.2013, 00:10 #14
понятнее
0
Kuzia domovenok
2041 / 1886 / 172
Регистрация: 25.03.2012
Сообщений: 6,499
Записей в блоге: 1
25.02.2013, 00:15 #15
Цитата Сообщение от booker Посмотреть сообщение
понятнее
По-твоему, это
C++
1
*(str+i) = *(str + slen-i-1);
более понятно, чем это?
C++
1
str[i] = str[slen-i-1];
0
25.02.2013, 00:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2013, 00:15
Привет! Вот еще темы с ответами:

Необходимо понять код - C++
Нужна помощь с комментированием кода #include &lt;iostream&gt; using namespace std; class Shape { public: ...

Необходимо понять код - C++
Народ, пожалуйста закомментируйте код #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;memory&gt; class Person { protected: ...

Не могу понять код пузырьковой сортировки - C++
Сам алгоритм работы ясен, а как это воплотить в код не могу понять. Если читать готовые коды, тоже не могу разобраться.

Код программы на языке С++. Не могу понять в чем ошибка - C++
Где-то в коде есть ошибка... Помогите найти... Код: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main () { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.