在c++中向字符串中添加char会导致崩溃



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

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: %sn", newtext);
    }
}
因此,如果我注释wprintf_s行,程序不会崩溃,但是如果我想测试并查看使用它向newtext添加了什么,它就会崩溃。我试图添加"n",但它也不工作,它闻起来像一些指针问题。会是什么呢?

我想你应该使用newtext.c_str()将其转换为正常的C字符串,当使用printf内的%s类型说明符时。

最新更新