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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужны комментарии к коду с указателями http://www.cyberforum.ru/cpp-beginners/thread793400.html
Добавить комментарии к коду так, что бы можно было понять что и как используется. #include <iostream> #include <cmath> #include <cstdlib> #include <ctime> using namespace std; void sum( int *a, const int N ) {
C++ Хеадер и исходник Имеется к примеру класс: class Call{ public: print(const char *text); }; Записано это в хеадер. Вопрос. Как сделать так, чтобы можно было описать методы класса в исходнике? К примеру описание метода: http://www.cyberforum.ru/cpp-beginners/thread793382.html
Обработка элементов вектора на С++ C++
Дан вектор - одномерный числовой массив. Определить количество элементов массива, расположенных между макимальным и «центральным» элементами массива (предполагается, что число элементов - нечётное и максимальный - единственный). Если по какой-либо причине количество элементов определить не удается, выдать об этом сообщение с указанием причины.
C++ Как проверить строку массива на наличее отрицательного члена
Как проверить строку массива на наличее отрицательного члена?
C++ Не работает цикл http://www.cyberforum.ru/cpp-beginners/thread793369.html
Доброго времени суток. Только начал изучать этот язык в институте, а там уже лабы требуют, и я в ужасе пытаюсь их успевать делать) Дали задание: что сделал я: #include <iostream.h> #include <math.h> int main(){ int x1, x2, dx, i, a, b, c, F, x, ; //x1 - x начальное, x2 - x конечное, dx - шаг. cout<<("Enter x1, x2, dx, a, b, c \n"); cin>>x1, x2, dx, a, b, c; for (i = x1; 1 < x2;...
C++ Странное взаимовлияние побитовых операций Запускаю в VS C++ 2012 int shift = 30; long long x = 1<<shift; long long y = ~0; //int x = 1<<shift; //int y = ~0; printf("%x\n%x\n", x, y); Получаю 40000000 0 подробнее

Показать сообщение отдельно
Simyrg
 Аватар для Simyrg
3 / 3 / 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/reference/algorithm/reverse/

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