0

我有一个问题,有几个程序员在扯头发。语言是 C/C++。考虑下面的代码...假设request是一个有效的 C++ 字符串。

string outMsg;
string trans_str = ("</TRANSACTION>");
int32_t position;

//Assign outMsg and find "</TRANSACTION>"
outMsg.assign(request);
position = outMsg.rfind(trans_str);

程序在 rfind(trans_str) 上崩溃。当使用 find(...) 和 replace(...) 时,程序也会崩溃。大多数 C++ 方法似乎都有问题。该程序还会崩溃,如下所示....

cout << "This is a string " << variable << "and this is the end"; //this is an example

程序通常会在第三个“<<”处崩溃,并且在此示例中只会打印以下输出:

“这是一个字符串 {variable}” 崩溃。

这里发生了很多奇怪的事情。

包括“字符串”(在尖括号中)。

谢谢!

4

1 回答 1

2

您的代码片段非常不完整,但是当我用我认为可能有意义的内容填写空白时,它对我来说运行良好.....

#include <iostream>
#include <string>

int main()
{
    std::string outMsg;
    std::string trans_str = ("</TRANSACTION>");
    int32_t position;

    std::string request = "abcdefg</TRANSACTION>hijklmnop";

    //Assign outMsg and find "</TRANSACTION>"
    outMsg.assign(request);
    position = outMsg.rfind(trans_str);

    std::string variable = outMsg.substr(position, outMsg.size()-position);

    std::cout << "This is a string\n" << variable << "\nand this is the end\n"; //this is an example
}
于 2012-06-29T18:53:33.500 回答