如图,我是参考题解思路写的,但是发生了一件诡异的事,就是明明最后结束符'\0'在c[n]并且c[n-1]也有值但是直接用cout它只输出到c[n-2]...真的很费解,然而用for循环它的输出就没问题

#include<iostream>
#include<cstdio>
using namespace std;
int n, m;
string c;
char oper;
int main()
{
cin >> n >> m >> c;
while(m--){
cin >> oper;
if(oper == '*') c[n++] = '0';
if(oper == '/') c[--n] = '\0';
if(oper == '+'){
int i = n - 1;
while(c[i] == '1') c[i--] = '0';
c[i] = '1';
}
if(oper == '-'){
int i = n - 1;
while(c[i] == '0') c[i--] = '1';
c[i] = '0';
}
}
for(int i = 0; i < n; i++)
cout << c[i];
return 0;
}