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

Перевернуть фрагмент строки

30.09.2018, 00:36. Показов 1423. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не получается написать программу которая переворачивает строку задом наперёд с i-го символа по j-й.
Проблемы с функцией getline. Как не пробовал, не хочет работать, и только вылетает.
С помощью cin пробовал, но дело в том,что cin считывает до пробела, а мне нужно, чтобы считывал всю строку.
Много других вариантов перепробовал, но работать не хочет.

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
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <stdio.h>
 
using namespace std;
 
void swap(char* a,char* b){
        char c = *a;
        *a = *b;
        *b = c;
}
 
void ReverseFromTo(char* sr,int length, int i, int j) {
        int k;
        for (k=0; k<=((j-i)/2); ++k) {
                swap( sr[i+k-1], sr[j-k-1]);
        }
 
}
 
int main() {
        int N, i1, j1;
        char* str;
 
        cin>>N;
        str = new char[N];
        cin.getline(str, N);
        cin>>i1;
        cin>>j1;
        ReverseFromTo(str, N, i1, j1);
        cout<<str<<endl;
 
        delete[] str;
 
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2018, 00:36
Ответы с готовыми решениями:

Найти количество простых чисел в массиве. Перевернуть все нечетные строки матрицы. Перевернуть каждое четное слово в строке
Ребята помогите разобраться в коде программы, написав подробные комменты к данной проге. Спасибо! Постановка задачи 1. Используя...

Вводятся 2 строки. Перевернуть обе строки, склеить и вывести
Помогиет с заданием! Вводятся 2 строки. Перевернуть обе строки, склеить и вывести. 1)тип string Код: ...

Перевернуть строки на 90 градусов
Вам заданы несколько строчек текста (сначала количество строчек, потом сами строчки). Вам надо перевернуть строки на 90 градусов как в...

2
5 / 3 / 2
Регистрация: 23.10.2016
Сообщений: 45
30.09.2018, 02:07
1)Я только учусь
2)Делал все в 2 часа ночи так что если вариант не оптимальный то сорь(а я боллее чем уверен что не оптимально, хотя бы потому,что в инклюд у меня осталось куча мусора)

Изминенния все в меине.

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
#include "stdafx.h"
#include "iostream"
#include "cstdlib"
#include "clocale"
#include "string"
#include "conio.h"
#include "cmath"
using namespace std;
 
void swap(char* a, char* b) {
    char c = *a;
    *a = *b;
    *b = c;
}
 
void ReverseFromTo(char *sr, int length, int i, int j) {
    int k;
    for (k = 0; k <= ((j - i) / 2); ++k) {
        swap(sr[i + k - 1], sr[j - k - 1]);
    }
 
}
 
int main() {
    int N(0), i1, j1;
    string str;
    getline(cin, str);
    cin >> i1;
    cin >> j1;
    char *cstr = new char[str.length() + 1];
    strcpy(cstr, str.c_str());
    N = str.length();
    ReverseFromTo(cstr,N, i1, j1);
    cout << cstr << endl;
    system("pause");
 
 
    return 0;
}
Да,оно работает, хотя в процессе ваяния я нашел штук 5 способов как сделать все то же самое в 5 раз проще, но с использование boost.

Впринципе можно и на char сделать,но тебе нужна именно строка верно? Вот собсна строку мы и переводим в ссылку на чар.

Если будет ругаться на strcpy(безопасные эквиваленты как я понял только в boostе и прочих доп библиотеках), то просто пиши в препроцессах _CRT_SECURE_NO_WARNINGS.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.09.2018, 15:10
Stasikus12,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    int i, j;
    string str;
    cout << "String:\n";
    getline(cin, str);
    
    cout <<"i="; cin >>i;
    cout <<"j="; cin >>j;
    i--; j--;
    
    for (int k=i; k<(i+j+1)/2; k++)
    swap(str[k], str[i+j-k]);
    
    cout <<str<<endl;
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2018, 15:10
Помогаю со студенческими работами здесь

Перевернуть строки в матрице
Дан двумерный массив A размера mXn. Перевернуть каждую его третью строку.

Перевернуть строки в матрице
в чем ошибка? не переворачивает нужную строку. #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { ...

Перевернуть строки в файле
Здравствуйте, помогите пожалуйста с проблемой. Задача: Задан текстовый файл. Создать новый файл, в котором строки будут следовать в...

Вывести фрагмент строки
Подскажите, пожалуйста, как решить простенькую задачку на строки: Показать на экран с m по n символов строки, введенной пользователем...

Строки. Перевернуть первое слово.
перевернуть первое слово в строке по С++. помогите, за 30 минут нужно сделать !!!((


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru