为什么输出结果是这样的,空格也战数组中的位置吗,如果【6】我输入了几个会怎样


#include <iostream>
using namespace std;
int main()
{
    //声明字符数组和变量
    char str[6];
    int i;
    //从键盘上输入字符串
    cout << "str=";
    cin >> str;
    cout << str << endl;
    //按数组下标变量两种方式显示数组
    cout << str << endl;
    for (i = 0; i < 6; i++)
        cout << str[i];
    cout << endl;
    //将字符反向输出
    for (i = 5; i >= 0; i--)
        cout << str[i];
    cout << endl;
    //将字符数组变成大写字母后输出
    for(i = 0;i<5;i++)
        str[i] -= 32;//小写字母转换成大写字母
    cout << str << endl;//显示字符串

}

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/73414512964614.png "#left")

cin读取碰到空格会截止
所以你读进去的只有a而已,所以只有str[0]有值,s[1]到是s[5]都是未初始化的,所以是乱码

img

因为空格也是字符。

希望对题主有所帮助,可以的话,帮忙点个采纳!

空格就输入结束了