从矢量C++读取字符时出现问题

Problem reading the characters from vector C++

本文关键字:问题 字符 读取 C++      更新时间:2023-10-16

我试图编写一个简单的代码,给出字母的所有 3 个字符组合,但它没有读取 ASCII 代码 (90( 字符,即"Z"。还有为什么字母在任何 90 行中组合重复?

这是代码:

{
int i, j, k;
char v[90];
for(i=65; i<=90; ++i)
v[i]=(unsigned char)i;
for(i=65; i<=90; ++i)
{
for(j=65; j<=90; ++j)
if(i!=j)
{
for(k=65; k<=90; ++k)
if(j!=k && i!=k)
cout<< v[i] << v[j] << v[k] << ' ';
cout<<endl;
}
cout<<endl;
}
return 0;
}

90 元素数组v的顶部元素是v[89]

你不能使用v[90];它不存在。

要么让它char v[91],要么改变你使用数组的方式(这里不需要那么多元素(。

char v[90]创建一个包含 90 个元素的数组,编号为 0 到 89。 通过访问列表的元素 90,您正在访问其他事物使用的内存位,因此您不能期望您放入其中的内容留在那里。 将数组初始化为 91 个元素长应该可以解决这两个问题。