我想制作一个程序,当用户输入 AB1245 并让程序将其更改为 AB 12345 (第 2 个和第 3 个字符之间的附加空格)

char Bilnr[9];

for (i = 8; i < 3; i--) {
    Bilnr[i++]=Bilnr[i];

}

据我了解,这个程序将从Bilnr[9]开始,并将其设置为Bilnr[8]的值。

然后将 Bilnr[8] 设置为 Bilnr[7] 的值。

但它不会移动任何值。它只是打印 AB1245

最佳答案

我注意到的一件事是,如果您的循环实际执行,它将是无限的

for (I=8; I<3; I--) {
    Bilnr[I++]=Bilnr[I];

}
I++ 不是 I+1,而是 I = I+1
但是你的循环不会执行,因为当你用 I<3 初始化 I 时,你的条件 I=8 从一开始就是假的

您也永远不会将 I[2] 设置为 ' '
你还必须意识到数组从 0 开始,所以 Bilnr[0] == 'A'
尝试
for(int i = 8; i > 2; i--)
{
    Bilnr[i] = Bilnr[i-1];
}
Bilnr[2] = ' ';

关于c++ - 在指定位置插入字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14592105/

10-13 07:32