Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с программой в с++

вася васин Ученик (243), закрыт 1 год назад
Помогите сделать так, чтобы dva было на месте Odin,а chetiry на месте tri.Ответ должен получиться
: dva Odin chetiry tri
Лучший ответ
Граф Планарный Мудрец (12614) 1 год назад
 #include  
#include
#include

using namespace std;

void split(string &str, vector &v, set &seps){
string cur;
for(int i = 0; i <= str.length(); i++){
if((i == str.length() || seps.find(str[i]) != seps.end()) && !cur.empty()){
v.push_back(cur);
cur.clear();
} else if(seps.find(str[i]) == seps.end()) cur += str[i];
}
}

void fillSeps(set &seps, const string& str){
for(auto &i: str) seps.insert(i);
}

template
void print(vector &v){
for(auto &i: v)
cout << i << " ";
cout << "\n";
}

int main(){
string s;
vector w;
set d;
fillSeps(d, " .,:;!?");
cout << "Input string: ";
getline(cin, s);
split(s, w, d);
for(int i = 0; i + 1 < w.size(); i += 2)
swap(w[i], w[i + 1]);
cout << "Altered string: ";
print(w);
}
Остальные ответы
Александр Л Ученик (227) 1 год назад
 #include  
#include
#include
#include

int main()
{
setlocale(LC_ALL, "Russian");

char s[500];

std::cin.getline(s, 500);
std::string str = s/* строка */, sres;
std::regex rgx{ "[А-Яа-яЁё\\d[:alpha:]']+" };
std::ssub_match smw, suf;
int i = 0;
for (std::sregex_iterator ib{ str.begin(), str.end(), rgx }, ie; ib != ie; ++ib, ++i)
{
if (0 == i % 2)
{
sres += ib->prefix();
smw = ib->operator[](0);
}
else
{
sres += ib->str();
sres += ib->prefix();
sres += smw;
smw = std::ssub_match{};
}
suf = ib->suffix();
}
if (smw.length() != 0)
{
sres += smw;
smw = std::ssub_match{};
}

std::cout << (sres += suf) << std::endl;
}
Похожие вопросы