【问题标题】:Adding char to string produces crash in C++在 C++ 中将 char 添加到字符串会导致崩溃
【发布时间】:2013-05-28 08:22:26
【问题描述】:

我在一个类中有这个公共函数,我正在做的是将一个字符串逐个字符附加到另一个字符串(因为我也在对字符进行一些检查)。所以,它基本上是这样的:

void mystring::copy(wstring oldtext) {
    wstring newtext;
    for (unsigned int i=0; i<oldtext.length(); ++i) {
        // Doing some checking ...
        // I also used newtext.append(1, oldtext[i]);
        newtext += oldtext[i];
        // Just testing
        wprintf_s(L"String: %s\n", newtext);
    }
}

所以,如果我评论 wprintf_s 行,程序不会崩溃,但如果我想测试并查看使用它添加到 newtext 的内容,它会崩溃。我尝试添加"\0\n",但它也不起作用,而且闻起来像一些指针问题。会是什么?

【问题讨论】:

  • 您将一个类对象传递给一个可变参数 C 函数 (wprintf_s);这不是一个好主意。
  • 那只是为了测试。我会删除它。也许我应该为此使用另一个函数,然后
  • @ali, std::wcout &lt;&lt; "String: " &lt;&lt; newtext &lt;&lt; "\n";

标签: c++ string crash char append


【解决方案1】:

我猜你应该使用newtext.c_str() 将它与%s 类型说明符一起在printf 中使用时将其转换为普通的C 字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2019-05-31
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    相关资源
    最近更新 更多