c ++附加到字符串

时间:2012-11-20 23:24:21

标签: c++ string for-loop append

是否有一种简单的方法可以将整数附加到字符串中?

我有一个像这样的for循环:

for(int i=0;i<text.length();i++){
        for(int g=0;g<word.length();g++){
            if(text[i]==word[g]){
                kodas.append(g);
            }
        }
    }

我需要得到相等的数组索引,当然索引是整数类型。但是当我这样做时,我收到一个错误:

invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]|

有办法解决这个问题吗?

5 个答案:

答案 0 :(得分:6)

如果您正在使用std :: strings:#include <sstream>

,请使用stringstream
#include <sstream>
using namespace std;
string oldString = "old";
int toAppend = 5;
stringstream ss(toAppend);
string newString = oldString + ss.str();

newString将为"old5"

答案 1 :(得分:1)

您可以,例如:

  • 使用将整数转换为字符串的itoa函数
  • 让您的kodas成为ostringstream并“写入”coutkodas << g

答案 2 :(得分:1)

最简单的就是这样:

if (kodas.empty()) { kodas += ' '; }
kodas += std::to_string(g);

如果您没有C ++ 11,请改用boost::lexical_cast<std::string>(g)

失败了,你可以做一些可怕的事情:

kodas += static_cast<std::ostringstream&>(std::ostringstream() << g).str();

答案 3 :(得分:0)

itoa(),它进入alpha函数,应该帮助你。如果你想

,sprintf或vsprintf也可以

答案 4 :(得分:0)

有几种方法可以将数字格式化为C ++中的字符串,包括sprintf()boost:lexical_cast()等。请参阅The String Formatters of Manor Farm以获得良好的比较和其他建议。此外,C ++ 11还有std::to_string。您的编译器可能已经或可能没有。