Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для KattyAlex
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 26

как понять код?

24.02.2013, 02:03. Показов 1984. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2013, 02:03
Ответы с готовыми решениями:

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

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

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

18
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
24.02.2013, 02:09
Переменной slen присваиваем длину строки str.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
24.02.2013, 02:10
Цитата Сообщение от KattyAlex Посмотреть сообщение
int slen = strlen(str);
объявить целую переменную slen и записать в нее длину строки str.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
24.02.2013, 02:10
hide
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.02.2013, 02:11
Переменной типа slen присваивается значение, равное количеству символов(видимых) в строке str.
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
24.02.2013, 02:12
Переменной slen присваивается значение длины массива символов str. В данном случае длина str = 6 (не считая \0).
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
24.02.2013, 04:41
перестановка символов в строке в обратном порядке.
строки 8-10 обмен местами двух символов симметрично, относительно середины строки.
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
24.02.2013, 11:23
Цитата Сообщение от KattyAlex Посмотреть сообщение
расшифруйте, пожалуйста, запись в 11-ой строке.
C++
1
}
ну, это закрывающая фигурная скобка цикла for.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
24.02.2013, 11:34
Это плохая реализация инвертирования строки (т.е. перестановки ее символов в обратном порядке). Плохая, потому, что сложение байтов может вызвать переполнение...
0
 Аватар для KattyAlex
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 26
24.02.2013, 22:02  [ТС]
а Вы могли бы написать мне хорошую реализацию?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
24.02.2013, 22:10
и такая покатит.
0
 Аватар для booker
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
24.02.2013, 23:20
эта лучше

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
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
24.02.2013, 23:22
Цитата Сообщение от booker Посмотреть сообщение
эта лучше
Это ещё чем, интересно? оператор [] ведь абсолютно эквивалентен твоим этим
Цитата Сообщение от booker Посмотреть сообщение
*(str+i);
0
 Аватар для booker
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
25.02.2013, 00:10
понятнее
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
25.02.2013, 00:15
Цитата Сообщение от booker Посмотреть сообщение
понятнее
По-твоему, это
C++
1
*(str+i) = *(str + slen-i-1);
более понятно, чем это?
C++
1
str[i] = str[slen-i-1];
0
 Аватар для booker
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
25.02.2013, 00:21
для меня без разницы

понятнее с временной переменной, т.к. сложение вычитание с char - индокод. имхо.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
25.02.2013, 00:28
Если нужно всё-таки на С++
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main() {
    std::string s;
    
    while ( std::cout << "String:   " && std::getline(std::cin, s) && ! s.empty() )
        std::cout << "Reversed: " << std::string(s.rbegin(), s.rend()) << std::endl;
    
    return 0;
}
0
 Аватар для booker
24 / 24 / 5
Регистрация: 21.11.2012
Сообщений: 106
25.02.2013, 00:36
ишо

C++
1
2
3
4
5
6
7
8
9
10
11
#include <string>
#include<iostream>
#include<algorithm>
int main()
{
   std::string str ="qwerty";
   std::reverse(str.begin(),str.end());
   std::cout<<str;
   system("pause");
   return 0;
}
0
 Аватар для Simyrg
4 / 4 / 0
Регистрация: 22.04.2012
Сообщений: 13
25.02.2013, 01:00
Как вариант использовать промежуточный буфер, не так уж это и затратно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
 
    char buff;                  //буфер для символа
    char str[10] = "abcdefgh";  //строка
    int slen = strlen(str);     //размер строки
   
    for(int i=0; i<slen/2; i++) {
        buff=str[i];
        str[i]=str[slen-i-1];
        str[slen-i-1]=buff;
    }
 
    return 0;
}
Хотя по мне лучше использовать string, не зря его умные дяди придумали :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
 
int main()
{
 
    char buff; //буфер для символа
    std::string str = "abcdefg"; //строка 
    std::string::size_type size=str.size(); //размер строки
    
    for (std::string::size_type i=0; i!=size/2; i++) {
        buff=str[i];
        str[i]=str[size-1-i];
        str[size-1-i]=buff;
    }
 
    return 0;
}
А ещё можно воспользоваться стандартной библиотекой:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <string>
#include <algorithm>    //не забываем для этого подключить algorithm
 
int main()
{
    std::string str = "abcdefg"; //строка 
    
    std::reverse(str.begin(), str.end());   
 
    return 0;
}
http://www.cplusplus.com/reference/algorithm/swap/
http://www.cplusplus.com/refer... m/reverse/

Пардон, пока я это писал уже успели наотвечать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2013, 01:00
Помогаю со студенческими работами здесь

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

Функция min. Не могу понять, как нужно расписать данный код, но хочется всё подробно разузнать.
Помогите вычислить пример в C++, в котором используется функция min: min⁡(a,b,c)^(a%c); Не могу понять как нужно расписать данный код,...

Как понять код
$data = $this-&gt;news_model-&gt;get_news($slug); // в 'news_item' есть поля 'title' и 'text' $data = $data; Как понять последнюю...

Как понять этот код на JS?
Код не мой, полностью рабочий, но для общего развития хочу понять как он работает: var MouseCoords = { // X-координата getX:...

Как понять непонятный код?
На одном из форумов я встретил вот такой код: if (0 &amp;&amp; count($aTitle) &gt; 1) В чем суть этого условия, я так и не сумел...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru