Дополнение stl представляет в виде строки в C++

Вы можете сначала выбросить все свои стоп-слова (например, «Доктор»), а затем все буквы (и цифры).

import re

text = "Hi, my name is Dr. Who. I'm in love with fish-fingers and custard !!"
tmp = re.sub(r'[Dr.|Prof.]', '', text)
print(re.sub('[a-zA-Z0-9]*', '', tmp))

Это сработает?

будет напечатано:

,      '    -   !!

Вывод захватывает текст между скобками в вашем вопросе.

48
задан Olaf Dietsche 6 December 2017 в 06:04
поделиться

8 ответов

станд.:: setw (setwidth) манипулятор

std::cout << std::setw (10) << 77 << std::endl;

или

std::cout << std::setw (10) << "hi!" << std::endl;

выводы дополнил 77 и "привет!".

, если Вы должны закончиться как строковый экземпляр использования станд.:: stringstream вместо этого станд.:: объект суда.

пикосекунда: ответственный заголовочный файл <iomanip>

62
ответ дан bayda 7 November 2019 в 12:05
поделиться
void padTo(std::string &str, const size_t num, const char paddingChar = ' ')
{
    if(num > str.size())
        str.insert(0, num - str.size(), paddingChar);
}

int main(int argc, char **argv)
{
    std::string str = "abcd";
    padTo(str, 10);
    return 0;
}
42
ответ дан Brian R. Bondy 7 November 2019 в 12:05
поделиться

Можно использовать его как это:

std::string s = "123";
s.insert(s.begin(), paddedLength - s.size(), ' ');
23
ответ дан Naveen 7 November 2019 в 12:05
поделиться

Самым легким путем я могу думать, был бы с stringstream:

string foo = "foo";
stringstream ss;
ss << setw(10) << foo;
foo = ss.str();

foo должен теперь быть дополнен.

22
ответ дан greyfade 7 November 2019 в 12:05
поделиться

можно создать строку, содержащую N пробелы путем вызова

string(N, ' ');

, Таким образом, Вы могли сделать как это:

string to_be_padded = ...;
if (to_be_padded.size() < 10) {
  string padded(10 - to_be_padded.size(), ' ');
  padded += to_be_padded;
  return padded;
} else { return to_be_padded; }
7
ответ дан Antti Huima 7 November 2019 в 12:05
поделиться

Существует хороший и простой путь:)

const int required_pad = 10;

std::string myString = "123";
size_t length = myString.length();

if (length < required_pad)
  myString.insert(0, required_pad - length, ' ');
2
ответ дан Andrew Grant 7 November 2019 в 12:05
поделиться

Как насчет:

string s = "          "; // 10 spaces
string n = "123";
n.length() <= 10 ? s.replace(10 - n.length(), n.length(), s) : s = n;
1
ответ дан Andy Mikula 7 November 2019 в 12:05
поделиться

Создайте новую строку 10 пробелов и работайте назад в обеих строках.

string padstring(const string &source, size_t totalLength, char padChar)
{
    if (source.length() >= totalLength) 
        return source;

    string padded(totalLength, padChar);
    string::const_reverse_iterator iSource = source.rbegin();
    string::reverse_iterator iPadded = padded.rbegin();
    for (;iSource != source.rend(); ++iSource, ++iPadded)
        *iPadded = *iSource;
    return padded;
}
-3
ответ дан Eclipse 7 November 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: