c++ - 在 C++ 中将 char 数组转换为字符串时出现额外字符
问题描述
因此,我编写了一个代码,在每次迭代中获取三个字符串,并存储从这三个字符串中获取每个字符的所有长度为三的组合(保持顺序)。我使用 char 数组来进行这些组合,然后将该 char 数组转换为字符串并插入到 unordered_set 中。这样做时,我遇到了一个问题,我看到在某些字符串的末尾添加了一个额外的字符。这是我的代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
char charArr[3];
string strArr[3];
unordered_set<string> aSet;
cin >> n;
while(n-- > 0) {
cin >> strArr[0] >> strArr[1] >> strArr[2];
for(int x=0; x<strArr[0].size(); x++) {
charArr[0]=strArr[0][x];
for(int y=0; y<strArr[1].size(); y++) {
charArr[1]=strArr[1][y];
for(int z=0; z<strArr[2].size(); z++) {
charArr[2]=strArr[2][z];
string tempStr(charArr);
cout << "Len = " << tempStr.length() << "\n";
aSet.insert(tempStr);
}
}
}
}
cout << "Check aaz = " << aSet.count("aaz") << "\n";
for(auto it=aSet.begin(); it!=aSet.end(); it++) {
cout << *it << "\n";
}
}
这是一个示例输入:
2
a a z
c a c
这是输出:
Len = 4
Len = 3
Check aaz = 0
cac
aaz
这是它在我的电脑中的外观图片:
但是,当我在ideone中为相同的输入运行相同的代码时,它给了我正确的答案。如下:
Len = 3
Len = 3
Check aaz = 1
cac
aaz
谁能解释一下这里发生了什么?
注意:我正在使用 CodeBlocks 和 C++14
解决方案
推荐阅读
- android - Recyclerview 滚动到空编辑文本
- sql-server - 从 SQL Server 恢复已删除的数据
- angular - ng2-dragula - 仅对特定目标使用复制功能?
- python - 使用 Tkinter 按钮时 Python 读取 GPIO 输入引脚时出现问题
- google-cloud-platform - 尝试在部署管理器中创建服务帐户密钥时出错
- css - 如何将 *ngFor 值列表分成两个 div
- python - 在 Django 中更新模型实例的 M2M 关系
- php - 来自多维数组的递归数组映射
- symfony - 如何使用命令在 Symfony 3.4 中生成实体?
- java - smack stanzaFilter 带有已接收元素的收据的消息