*char数组到字符串(两次运行代码和两个不同的结果)
*char array to string (two times run code and two different result )
为什么相同的代码有两个不同的结果,并不总是是替代的,有时由 *数组制成的字符串长度:4和不同的时间将是长度:6。最后两个字符是随机的。
string linequery;
getline(cin, linequery);
char * buffer = new char [4];
size_t lengthh = linequery.copy(buffer, 4, 0);
string stringbuffer(buffer);
cout << " length :" << stringbuffer.length() << endl;
cout << " string buffer : " << stringbuffer << endl;
referencetree.push_back(stringbuffer);
delete [] buffer;
长度6:
输出长度:6
字符串缓冲区:tag1
线查询:tag1.tag2〜名称:长度:14
持续长度4:
输出长度:4
字符串缓冲区:tag1
线查询:tag1.tag2〜名称:长度:14
输入是相同的:tag1.tag2〜名称
linequery.copy
可能不会编写终止空的零,因此您依靠buffer
是无法保证的null后的下一个字符。您应该用:
string stringbuffer(buffer, dotpoint-lastdot);
相关文章:
- 如何返回一个类的两个对象相加的结果
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 这两个代码片段相似,但显示的结果不同
- oStream 不打印添加两个 valarray 的结果(使用运算符重载)
- 为什么 Clang 和 GCC 中两个无符号整数之和的结果类型不同
- 我有两棵二叉树.我想在不更改输入树的情况下深度复制两个二叉树的结果
- 为什么同一个逻辑方程在python和c++中返回两个不同的结果
- 为什么这两个相似的代码计算行列式的结果不同?
- 如何通过键和值以及在C 中的结果映射中比较两个地图?我们有任何STL API吗?
- 如何乘以两个值并原子存储结果
- *char数组到字符串(两次运行代码和两个不同的结果)
- 运算符的两个不同结果 - 在 c++11 中
- 在发布版本中划分两个双精度的结果错误
- 两个结果的std :: chrono :: high_resolution_clock :: now()给出了〜270n
- C++:两个单独的函数在嵌套时返回不同的结果?
- 警告:用两个参数构造函数返回对象时,表达结果未使用
- 随机洗牌似乎会产生相同的结果,但仅在前两个实例中产生相同的结果.我如何避免这种情况
- 运算符*=来自两个实例(矩阵),结果不好
- 在 GCC 4.6 和 4.7 上模板模板扣除的两个不同结果
- 获取两个字符串之间的结果,而不将它们包含在结果中