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

Перестановка местами два участка строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка после выполнения программы http://www.cyberforum.ru/cpp-beginners/thread1084287.html
Как исправить? Программа выполняется правильно, но после нажатья Энтера вот это выскакивает (очень сильно раздражает). Причем если нет getch(), то все норм.
C++ Что делают функции int(), float()? Добрый день. Неоднократно встречал функции вида int(), float() и т.д. Вопрос - что они делаю и зачем они нужны. Спасибо! http://www.cyberforum.ru/cpp-beginners/thread1084282.html
C++ Дополнить код с обработкой элементов
Составить программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух строк. Это сделано, а вот со второй частью задания проблемы. Организовать обработку каждого элемента: печать строк из информационной части и их первых символов. Вот тут и застрял. Надеюсь на вашу помощь.:-| Вот код первой части задания:...
максимальное и минимальное число отдельно среди всех положительных чисел C++
Здравствуйте! Помогите пожалуйста нужно найти максимальное и минимальное число отдельно среди всех положительных чисел и отдельно среди всех отрицательных чисел.
C++ Найти слова в строке http://www.cyberforum.ru/cpp-beginners/thread1084230.html
В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-; ), найти: слова, состоящие из разных букв.
C++ Построить лексический сканер, который выделял бы из текста входной программы, написанной на языке С все ключевые слова Помогите построить лексический сканер, который выделял бы из текста входной программы, написанной на языке С++ все, содержащиеся в ней, ключевые слова. Записать их в отдельный файл. подробнее

Показать сообщение отдельно
Frai32
2 / 2 / 0
Регистрация: 24.08.2013
Сообщений: 134
29.01.2014, 11:06     Перестановка местами два участка строки
Есть область памяти (строка), условно поделенная на две части A и B. Область
B идет сразу после A. Заданы длины обоих частей. Используйте рекурсивный
reverse(), чтобы поменять a и b местами. Решение не требует рекурсии, кроме
той, что в reverse().

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
44
45
46
47
#include <iostream>
#include <string.h>
#include <conio.h>
 
 
void reverse(char* s, size_t len);
 
 
int main()
{
 
    char test1[] = "123456789";
 
    std::cout << test1 << std::endl;
 
    size_t len = (strlen(test1)/sizeof(test1[1]))-1;
  
    reverse(test1, len);
 
    std::cout << test1 << std::endl;
    getch();
    
    return 0;
 
 
}
 
void reverse(char* s, size_t len)
{
    static size_t len_old = len/2;  //находим первую половину длины строки
   
    
    //переменные для записи символов размер равен половине от главного массива
    char* a = new char[len_old];
    char* b = new char[len_old];
    
    for(size_t i=0; i < len_old; ++i)
     a[i] = s[i];
     
    a[len_old]='\0';
    
     for(size_t i=0; i < len_old; ++i)
        b[i] = s[i+len_old];
        
    strcpy(s,b);
    
}
на место первой части ставится вторая, а вместо первой появляется знак "-".В чём может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru