繁体   English   中英

rfind和<<崩溃程序

[英]rfind and << crashing program

我有一个问题,有一些程序员拉他们的头发。 语言是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}”CRASH。

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

包括“string”(在尖括号中)。

谢谢!

你的代码片段非常不完整,但是当我用我认为可能有意义的东西填写空白时,它对我来说运行正常.....

#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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM