Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Assles
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 7
#1

Нужно инвертировать вторую половину строки. - C++

03.01.2013, 14:38. Просмотров 351. Ответов 3
Метки нет (Все метки)

1) нужно инвертировать вторую половину строки.

помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2013, 14:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно инвертировать вторую половину строки. (C++):

Удалить первую половину элементов из динамического массива, вторую половину поставить на место первой
удалить первую половину елементов из динамического массива , а вторую половину...

Передать в массив I(5) вторую половину массива J(10).
помогите:Передать в массив I(5) вторую половину массива J(10).

Как сделать вторую половину ромба
#include <iostream> using namespace std; void main () { for(int i=0; i<18;...

Поменять местами первую и вторую половину массива.
Помогите решить задачки!!! 1) Дан массив размера n. Поменять местами первую и...

Удалить из данного файла вторую половину элементов
Дан файл целых чисел, содержащий четное количество элементов. Удалить из...

Отсортировать первую половину массива по возрастанию, а вторую по убыванию
Программа не работает, помогите найти ошибку #include <cstdlib> #include...

3
Croessmah
++Ͻ
14160 / 8085 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
03.01.2013, 14:51 #2
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
void foo(char *arr, size_t size){
    for(int i=0;i<size/2;++i)
        std::swap(*(arr+i),*(arr+size-i-1));
}
 
 
int main(){
    char str[]="String ecrever";
    int len=strlen(str);
    std::cout<<"Source: "<<str<<"\n";
    foo(str+len/2,len-len/2);
    std::cout<<"Rezult: "<<str<<std::endl;
    return 0; 
}
0
softmob
1249 / 699 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
03.01.2013, 15:32 #3
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main(void)
{
    std::string str = "12345678";
    std::reverse(str.begin() + str.size() / 2, str.end());  
    std::cout << str << std::endl;
    return 0;
}
или
C++
1
std::reverse(s + strlen(s) / 2, s + strlen(s));
для строк в стиле си

Добавлено через 3 минуты
или
C++
1
2
for (int j = strlen(s), i = j-- / 2; i < j; ++i, --j)
        std::swap(s[i], s[j]);
0
Assles
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 7
08.01.2013, 15:18  [ТС] #4
спасибо, выручили
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 15:18
Привет! Вот еще темы с решениями:

Отсортировать первую половину массива по возрастанию, а вторую по убыванию
Дан массив из четного числа элементов. Отсортировать первую половину этого...

Заполнить первую половину матрицы размером n*n единицами, а вторую - нулями
2. Заполнить первую половину двумерного массива размерности n x n еденицами, а...

Упорядочить первую половину заданного массива по возрастанию, а вторую – по убыванию
Массив содержит четное количество элементов. Напишите программу, которая...

Заполнить первую половину двумерного массива единицами, а вторую нулями
дано два масиви дійсних чисел заповнити першу половину двомірного масиву...


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

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

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