Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.205.56.209] |
|
Сообщ.
#1
,
|
|
|
Программа:
#include <stdio.h> #include <vector> #include <iostream> #include <string> using namespace std; int main() { vector<string> sv{"01.name1", "030-name2", "100 - name3", " 55 . name4", "name5"}; for (auto&& s : sv) { for (int i = 0; i < s.length(); i++) { if (!isalpha(s[i])) continue; else { cout << s.substr(i, s.length()) << endl; break; } } } return 0; } |
Сообщ.
#2
,
|
|
|
Цитата tumanovalex @ как на С++ решить эту задаче короче и эффективнее (с целью изучения С++) Примерно вот так: #include <algorithm> #include <iostream> #include <vector> #include <string> #include <regex> int main() { std::vector<std::string> sv{"01.name1", "030-name2", "100 - name3", " 55 . name4", "name5", "11.дигидроген монокислород"}; std::regex rx("^[^A-Za-zА-яЁё]*(.*)$"); // для UTF-8 // так: for (auto &s : sv) s = std::regex_replace(s, rx, "$1"); // или так: std::transform(sv.cbegin(), sv.cend(), sv.begin(), [&](std::string s) { return std::regex_replace(s, rx, "$1"); }); for (auto &&s : sv) std::cout << s << std::endl; return 0; } Результат работы: name1 name2 name3 name4 name5 дигидроген монокислород Онлайн выполнение тут. |
Сообщ.
#3
,
|
|
|
Спасибо! Очень здорово. Опять регулярные выражения. Видимо, без них не обойтись. Нужно разбираться.
|