В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
exm0r3d
exm0r3d
12.09.2021 03:51 •  Информатика

Даны две строки символов, состоящих из цифр, букв и пробелов. группу символов, не содержащих пробелов внутри себя, будем называть словами. составить программу переформирования строк так, чтобы в первой строке располагались слова, начинающиеся с цифр, в порядке их возрастания, а во второй – слова, начинающиеся с букв, в алфавитном порядке. перевести из pascal в с++ begin var s1: =readlnstring('строка 1: '); var s2: =readlnstring('строка 2: '); var s: =(s1+' '+s2).towords; s1: =s.where(t-> t[1] in ['0'..'9']).orderby(t-> t).joinintostring; s1.println; s2: =s.where(t-> not(t[1] in ['0'..'9'(t-> t).joinintostring; s2.println end.

Ответ:
kubajoleksandra
kubajoleksandra
08.10.2020 20:57
Незнаю верно ли я все понял, но как вариант можно сделать так
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>

bool DigitFirst(const std::string& rhs, const std::string& lhs)
{
    if (isdigit(rhs[0]) || isdigit(lhs[0]))
        return rhs < lhs;
}

bool LetterFirst(const std::string& rhs, const std::string& lhs)
{
    if (isalpha(rhs[0]) || isalpha(lhs[0]))
        return rhs < lhs;
}

const std::string TrueSort(std::string str, bool(*comparator)(const std::string&
rhs, const std::string& lhs))
{
    std::stringstream ss(str);
    std::vector<std::string> vstr(std::istream_iterator<std::string>(ss), {});
    std::sort(vstr.begin(), vstr.end(), comparator);
    ss.clear();
    std::copy(vstr.begin(), vstr.end(), std::ostream_iterator<std::string>(ss, " "));
    return ss.str();
}

int main()
{
    std::string first  = "position total 12345 2jz asd512fgh";
    std::string second = "year 10010 2018r r98k hello";
    std::cout << TrueSort(first,  DigitFirst ) << std::endl;
    std::cout << TrueSort(second, LetterFirst);
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?