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

Кто знает гайд по заголовочному файлу "string"

27.03.2018, 23:42. Показов 1457. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу код шифра Цезаря. С массивами работа очень геморная. Код почти готов, но сыроватенький он. Нужно к каждому символу в строке типа "string" прибавить циферку, как в ASCII. (Символ 'а' + 1 = b)

В гугле забанили :з
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2018, 23:42
Ответы с готовыми решениями:

Проблема с подключением sfml к заголовочному файлу
Здравствуйте. Возникла следующая проблема. Пользуюсь (начинаю) VS. В частности, сейчас осваиваю С++ и библиотеку SFML. Писал несложную...

Как прописать путь к заголовочному файлу VS2010?
Не могу найти информацию как прописать путь в директиве к своим файлам. Сам не понял что написал но результат примерно такой. ...

Может кто знает как дать/изменить права доступа к папке и файлу
То есть, есть виртуальный сервер xampp, потом идет папка htdocs, и дальше идут папки(типа домен), вот как на эти папки и внутри на их файлы...

7
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
27.03.2018, 23:46
C++
1
2
3
4
string a = "abc";
    
for (int i = 0; i < a.size(); ++i)
    ++a[i];
0
1 / 1 / 0
Регистрация: 25.06.2017
Сообщений: 68
27.03.2018, 23:55  [ТС]
Спасибо, работает.
Вот конечный код, если кому надо

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
#include <iostream>
#include <string>
using namespace std;
 
 
int main() {
    //Запрос текста
    cout << "Input text: " << endl;
 
    string text;
 
    //Ввод символов
    getline(cin, text);
 
 
    //Запрос ROT
    cout << "ROT:" << endl;
    int ROT;
    cin >> ROT;
 
    //Операция
    for (int i = 0; i < text.size(); i++)
        text[i] += ROT; 
 
    //Вывод результата
    cout << "Output text: " << endl;
    cout << text << endl;
 
    //Очистка памяти и остановка приложения
    system("pause");
}
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
27.03.2018, 23:57
Мураша, в 22й строке знак <
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
28.03.2018, 11:04
Code
1
2
3
4
5
6
7
8
$ ./a.out 
Input text: 
aAzZ
ROT:
-1
Output text: 
`@yY
sh: 1: pause: not found
Разве оно не должно заворачиваться обратно на буквы? А вот и полноценный баг:
Code
1
2
3
4
5
6
7
8
$ ./a.out 
Input text: 
eazy
ROT:
134
Output text: 
���
sh: 1: pause: not found
На входе 4 символа, на выходе 3
А вот еще:
Code
1
2
3
4
5
6
7
8
$ ./a.out 
Input text: 
русский текст
ROT:
1
Output text: 
ҁ҄҂҂ѻѹѺ!҃Ѷѻ҂҃
sh: 1: pause: not found
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
28.03.2018, 11:27
Лучший ответ Сообщение было отмечено Мураша как решение

Решение

Если ROT будет принимать любые значения, то как минимум три косяка вижу.

1. Надо открывать файл в бинарном режиме, иначе будут проблемы с переводами строки.
2. Считывать надо через read, а не через getline, иначе будут проблемы с символами '\n' и '\0'
3. Вывод результата нужно делать в виде шестнадцатеричных кодов, а не строкой, иначе не будут видны управляющие символы, символы-разделители и вывод будет прерываться на терминальном нуле.

И вообще по шифру Цезаря конечные буквы должны замыкаться на начальные, то есть пропускаться возможность преобразования на управляющие символы, тогда три косяка выше будут неактуальными.
0
1 / 1 / 0
Регистрация: 25.06.2017
Сообщений: 68
30.03.2018, 16:01  [ТС]
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 <iostream>
#include <string> //заголовочный файл string для работы с переменными соответствующего типа
using namespace std;
 
int main() {
    //Запрос текста
    cout << "Input text: " << endl;
 
    //Инициализация переменной типа "string"
    string text;
 
    //Ввод символов
    getline(cin, text);
 
    //Запрос ROT
    cout << "ROT:" << endl;
    int ROT;
    cin >> ROT;
 
    //Операция
    for (int i = 0; i < text.size(); i++) {
        //Фильтр неалфавитных символов
        if (text[i] < 65 || text[i] > 122 || (text[i] > 90 && text[i] < 97))
            continue;
        //Сдвиг
        text[i] += ROT;
        //Реализация цикличности алфавита (a + 1 = z)
        if ((text[i] >= 90 && text[i] <= 97) || text[i] > 122) {
            text[i] -= 26;
        }
    }
 
    //Вывод результата
    cout << "Output text: " << endl;
    cout << text << endl;
 
    //Остановка приложения
    system("pause");
}
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
30.03.2018, 16:23
Правильно, проще с википедии скопировать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2018, 16:23
Помогаю со студенческими работами здесь

Сравнение строк (String) в java. Мини гайд для начинающих
Всем привет! Одна из самых распространенных ошибок начинающих, выражаемая в очень частых темах типа – «не работает условие…», является...

Как это сделать кто знает? кто поможет?)
Задание № 8 Разработать базу данных «Пожарная охрана» Сведения: • Номер пожарного расчета, • Фамилия, имя, отчество командира...

знает кто ?
Написать метод, на входе переменная типа string, метод должен вывести в консоль данную строку с перемешиванием символов. Например, указали...

Кто знает?
всем привет!подскажите кто знает по какой причине я не могу скачать какой либо файл который свыше 200 300кб на нокиа 5530

Кто знает?
Ребята,привет! Кароче, я не знаю что это за ерунда на мониторе, может кто знает и что с этим делать? Вот эта фигня:


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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