C++字符数组值赋值
C++ char array value assignment
>我试图将字母表保存在字符数组中。但是有4个字母显示了荒谬的字符。
我使用 F11 按钮逐步运行程序。写了字母表,在"Q"之后,直到"V"我写什么,它都显示......PQÿÿÿÿVWXYZ 这个字符: 'ÿ'
int main()
{
cout << "ALPHABET:";
char alf[] = "";
cin >> alf;
system("PAUSE");
}
我期望: ABCDEFGHIJKLMNOPQRSTUVWXYZ
实际结果: ABCDEFGHIJKLMNOPQÿÿÿÿÿVWXYZ
问题出在以下行:
char alf[] = "";
您声明大小为 1 的 char 数组,该数组只能容纳空字符串(空终止符)。请注意,std::istream::operator>>
with char *
不会验证数组的大小(它不能),因此您将未定义的行为写入数组,并且没有边界。解决方案是改用std::string
,它将根据需要增长。
int main()
{
std::cout << "ALPHABET:";
std::string alf;
std::cin >> alf;
std::cout << alf << std::endl;
}
相关文章:
- 缩放和插值数组
- 从类型元组到通过调用模板函数返回的值数组
- 采用OpenCV Mat<doube>并转换为12位值数组。
- 如何将值数组从 json 文件读取到 c++ 数组
- 有没有办法在值数组中随机添加或减去两个特定数字或更多
- 生成随机值数组而不重复
- 在 OpenCV 中加载像素值数组
- 使用布尔值数组"表达式必须具有指向对象类型的指针"错误C++
- 如何使用C Win32 API设置和获取多个值(数组值)到Active Directory中的单个属性
- 如何在C++中将值数组转换为参数
- 有没有任何方法可以确定rgb值数组的宽度和高度
- 获取内存值数组的最快方法
- 传递指针数组并返回这些指针指向的值数组
- C++填充静态值数组
- 使用 c++ 在值数组中查找最大利润(最大 - 最小值)
- 字符赋值数组不起作用
- c++将值赋给数组的索引10会影响索引0
- 将相同的值赋给数组中所有元素的方法
- 在赋值(数组索引)时无法将' libraryname::ZlibCompressor '转换为' libraryn
- 赋值-数组的左操作数需要左值