[英]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.