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

Сравнение 2-х строк S и s

04.08.2016, 16:21. Показов 1712. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заданы две строки S и s. Определить, является ли строка s префиксом, суффиксом, и тем, и другим или ни тем, ни другим для S. Строки S и s могут содержать произвольные печатные не пробельные символы.

можно использовать только библиотеки iostream, string, vector, iomanip:




примеры для проверки кода:

1) Hello lo Suffix

2) 123absd 123ab Prefix

3) ^^##^#^#^#^^# ^^# Both

4) Hehho h Neither

5) a bs Neither
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2016, 16:21
Ответы с готовыми решениями:

Функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение строк
На языке Ассемблер написать функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение...

Сравнение строк одной БД с другой либо как избавится от ненужных строк
Доброе время суток! Проблема состоит в следующем. Есть корпоративная БД (то есть структуру придумывал не я) в ней есть две таблицы P с...

Сравнение строк в нескольких файлах excel, копирование несовпадающих строк и их вывод в сводный файл
Добрый день, только только начал разбираться с VBA в excel, поэтому прошу помощи (схожие темы находил, но не смог преобразовать их...

6
2393 / 1917 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
04.08.2016, 16:46
Лучший ответ Сообщение было отмечено Realmucho как решение

Решение

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
#include <iostream>
#include <string>
#include <cstdlib>
 
int main()
{
    std::string S, s1;
    std::cout << "S = ";
    std::cin >> S;
    std::cout << "s1 = ";
    std::cin >> s1;
 
    std::string::size_type n1 = S.find(s1);
    std::string::size_type n2 = S.rfind(s1);
 
    if ((n1 == 0) && (n2 == S.size() - s1.size()))
        std::cout << "Both";
    else if ((n1 != std::string::npos) && (n1 != 0) && (n2 != std::string::npos) && (n2 == S.size() - s1.size()))
        std::cout << "Suffix";
    else if ((n1 == 0) && (n2 != std::string::npos) && (n2 != S.size() - s1.size()))
        std::cout << "Prefix";
    else
        std::cout << "None";
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
04.08.2016, 16:49  [ТС]
спасибо большое!!!

а для чего библиотека <cstdlib> ???? без него не обойтись ???
0
Заблокирован
04.08.2016, 16:53
Обойтись. Только system("pause") убери.
0
2393 / 1917 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
04.08.2016, 16:53
Цитата Сообщение от Realmucho Посмотреть сообщение
а для чего библиотека <cstdlib> ?
Для system("pause"); Без него консоль закроется и результаты не посмотреть. Можно заменить на cin.get(); в принципе.
0
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
04.08.2016, 16:57  [ТС]
ааа ну эт то да, но я меняю подсистему в настройках проекта...и получается без паузы
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
04.08.2016, 17:50
Ну, логику программы можно попроще отобразить:
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
#include <iostream>
#include <string>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
int main()
{
    T_str   S;
    T_str   s1;
    std::cout   << "S = ";
    std::cin    >> S;
 
    std::cout   << "s1 = ";
    std::cin    >> s1;
 
    auto    is_pref     =   S.find(s1)  ==  0;
 
    auto    is_suff     =       S.rfind (s1)    +   s1.size()
                            ==  S.size  ();
 
    std::cout   <<  (
                        is_pref
                            ?   is_suff
                                    ?   "Both"
                                    :   "Prefix"
 
                            :   is_suff
                                    ?   "Suffix"
                                    :   "Neither"
                    )
 
                <<  std::endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2016, 17:50
Помогаю со студенческими работами здесь

Сравнение строк введенных в грид и строк из массива
У меня есть массив с строками.(максимальная длина строки 8 символов, минимальная длина 3 символа). Также есть stringgrid в который я...

Сравнение строк
Доброго времени суток,помоги пожалуйста с задачей:Ввести с клавиатуры две строки. Сравнить их. Вывести на экран “ДА”, если они равны и...

Сравнение строк
Помогите написать программу,на С++, которая сравнивает две строки игнорируя различия в регистрах,не используя стандартных функций.Ввод...

Сравнение строк
Определить есть ли в матрице две одинаковые строки?

Сравнение строк
Оч мало времени, по этому прошу помощи. Есть задача: Программа должна проверять орфографию(правильное написание) слов в некоторой...


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

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