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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти корень квадратного уравнения http://www.cyberforum.ru/cpp-beginners/thread49983.html
Люди помогите решить программу з оператором (if) Задание: Знайти корень квадратного уравнения!!!!!
C++ Магический квадрат и другие задачи здравствуйте. Мне очень не обходима ваща помощь в следуших заданиях. 1. Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. 2. Определить натуральное число не больше заданного n с наибольшей суммой делителей. Исполь-зовать функцию вычисления суммы делителей числа 3. Написать... http://www.cyberforum.ru/cpp-beginners/thread49969.html
C++ Структуры и использования сравнения strcmp
Как правильно написать ? дана часть кода: Код C++ #include "stdafx.h" #include <iostream> using namespace std main() {stract znak{char fam
люди помогите с программой на С++ я пока новичёг C++
дана последовательность чисел из n элементов найти среднее арифмитеическое последавательности н любое данно #include<iostream.h> #include<math.h>
C++ В одномерном массиве, который состоит из n вещественных элементов подсчитать номер минимального элемента массива http://www.cyberforum.ru/cpp-beginners/thread49952.html
В одномерном массиве, который состоит из n вещественных элементов подсчитать: 1) номер минимального элемента массива; 2)сумму элементов массива, которые расположены между первым и вторым отрицательными элементами
C++ Dev C++. (Отладка) Всем привет. Меня интересует как в Dev C++ производить отладку программы? У меня чото не работает... Добавлено через 1 час 2 минуты Никаму нечево сказать? подробнее

Показать сообщение отдельно
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
08.09.2009, 00:24     Реверсирование строк
Хм... Мне кажется, что это не самый лучший учебник(ну или пример в частности). Вот
мой вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main() 
{
    setlocale(LC_ALL, "Russian"); 
    char str[] = "Россия - щедрая душа";
    std::cout<<"Исходная строка: "<<str<<'\n';
 
    size_t len = strlen(str);
    for(unsigned short i = 0; i < len/2; ++i)
        str[i] ^= str[len - i - 1] ^= str[i] ^= str[len - i - 1];
    std::cout<<"Результат после реверсирования: \n"<<str<<'\n';
 
    system("pause");
    return 0;
}
, он намного проще. Все вышесказанное действительно, если тема - это не работа с указателями.

C++
1
2
3
4
5
6
7
8
9
10
end = &str[len-1];//запись в end - последнего символа строки
while(start < end) // пока старт меньше конца(читай пока не середина строки)
{
        t = *start; //сохраняем в буфер левый символ
        *start = *end; //записываем в левый символ правый символ
        *end = t; //в правый символ записываем содержимое буфера
// ну как обычный пузырек
        start++; // и просто смещаем указатель слева на один символ вправо
        end--; // и справа на один символ влево
}
 
Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru