我想制作一个程序,当用户输入 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/