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

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

04.08.2016, 16:21. Просмотров 1093. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2016, 16:21
Ответы с готовыми решениями:

Сравнение строк
Добрый вечер. Пользователь должен ввести слово которое находиться в инструкции if и ему должно...

Сравнение строк
Тупо и банально нужно сравнить строки средствами с++. Гуглил, но не нашел работающих примеров, толи...

Сравнение строк
#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> using namespace...

Сравнение строк
нужно сравнить две строки на сходство, но они не обязательно должны быть полностью одинаковы, и...

Сравнение строк
Есть два файла,достаю из первого - 1-ю строку и из 2 - 1-ю строку Они имеют вид:...

6
John Prick
839 / 770 / 258
Регистрация: 27.07.2012
Сообщений: 2,180
Завершенные тесты: 3
04.08.2016, 16:46 2
Лучший ответ Сообщение было отмечено 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
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
04.08.2016, 16:49  [ТС] 3
спасибо большое!!!

а для чего библиотека <cstdlib> ???? без него не обойтись ???
0
nimazzzy
Заблокирован
04.08.2016, 16:53 4
Обойтись. Только system("pause") убери.
0
John Prick
839 / 770 / 258
Регистрация: 27.07.2012
Сообщений: 2,180
Завершенные тесты: 3
04.08.2016, 16:53 5
Цитата Сообщение от Realmucho Посмотреть сообщение
а для чего библиотека <cstdlib> ?
Для system("pause"); Без него консоль закроется и результаты не посмотреть. Можно заменить на cin.get(); в принципе.
0
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
04.08.2016, 16:57  [ТС] 6
ааа ну эт то да, но я меняю подсистему в настройках проекта...и получается без паузы
0
Mr.X
Эксперт С++
3184 / 1711 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
04.08.2016, 17:50 7
Ну, логику программы можно попроще отобразить:
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
04.08.2016, 17:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2016, 17:50

Сравнение строк
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;string&gt;...

Сравнение строк
Всем привет, имеется строка записаная в масив, как мне сравнить первую букву єтой строки с єтой...

Сравнение строк
Объясните пожалуйста по какому способу строки сравниваются? А то я сравнивал так и не понял в чем...


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

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

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