首先,我可能以错误的方式使用sprintf。
我正在制作一个框架插件,它将字符串作为配置。字符串包含需要换出的内容,例如,一个字符串将是路径模板:
[root]/[template_directory]/something/specific/[theme_name].htm
上面的示例非常具体,并且有很多变量需要换出。
对于较少的变量,我一直这样做:
sprintf('%s/some/file/path/theme.htm',documentroot);
但是,我想知道sprintf是否可能更难以用于更多变量。
在第一个例子中,我应该为每个变量使用字符串替换,还是应该使用sprintf?或者我是否可怕地使用sprintf错误?
非常感谢任何建议!
答案 0 :(得分:1)
也许你可以在std :: string中使用replace:
请看这个例子: 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);
祝你好运!