Когда вы должны начать использовать string replace over sprintf? - PullRequest
1 голос
/ 20 декабря 2011

Для начала я могу использовать sprintf неправильным образом.

Я делаю плагин фреймворка, который принимает строки в качестве конфигурации. В строках есть вещи, которые нужно поменять местами, например, одна строка будет шаблоном пути:

[root]/[template_directory]/something/specific/[theme_name].htm

Приведенный выше пример довольно специфичен и содержит множество переменных, которые нужно поменять местами.

Для меньших переменных я делал это так:

sprintf('%s/some/file/path/theme.htm',documentroot);

Однако мне интересно, может ли sprintf быть более неясным для использования с большим количеством переменных.

В первом примере я должен использовать замену строки для каждой переменной или использовать sprintf? Или я ужасно использую sprintf неправильно?

Любой совет с благодарностью!

1 Ответ

1 голос
/ 20 декабря 2011

Возможно, вы могли бы использовать replace в std :: string:

Пожалуйста, посмотрите на следующие примеры: http://www.devx.com/getHelpOn/10MinuteSolution/16972/1954

std::string phrase = "[root]/[template_directory]/something/specific/[theme_name].htm";
std::string sought = "[root]";
std::string replacement = "newROOT";

phrase.replace(phrase.find(sought), 
               sought.size(), 
               replacement);

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...