Добавление строк C ++ в начале и в конце - PullRequest
1 голос
/ 21 марта 2012

Я хочу добавить ^ в начале строки и $ в конце.

std::string s1 (".V/.B/.R/");

Это лучший способ использования?

s1.append(s1.begin(),"^");
s1.append(s1.end(),"$");

Спасибо за любую помощь.

Ответы [ 3 ]

7 голосов
/ 21 марта 2012

Это будет insert, а не append, но в остальном все будет в порядке.

Еще более простой способ будет

s1 = '^' + s1 + '$';
2 голосов
/ 21 марта 2012

Ваши примеры не будут работать, так как они не используют никаких перегрузок stl::string::append , вы можете создать новую строку и добавить элементы по отдельности, т.е.

std::string FormatText( const std::string& rstrInput )
{
    std::string strOutput = "^"; 
    strOutput += rstrInput ;
    strOutput += "$";
    return strOutput;    // RVO will eliminate copying
}

Но, вероятно, есть несколько способов сделать это, добавление, вероятно, является самым простым.

std::string strResult = "^" + strValue + "$";

Вы также можете использовать строковые потоки ..

std::stringstream ss;
ss << "^" << strValue  << "$";
std::string strResult = ss.str();

... формирование строки в стиле printf и т. Д.

2 голосов
/ 21 марта 2012

Вы не можете использовать std::string::append() таким образом:

s1.insert(0, "^");
s1.append("$");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...