在学习用栈处理表达式求值的问题时,扫描待求表达式的循环条件为
while(*exp!='\0'){}
我一开始在main函数里,循环输入字符,这个数组传入函数后在上述语句发生了死循环……
因为字符串也是以数组形式存储的,结尾会留一个空间存储结束标识'\0'
所以我在传入数组的最后添加了'\0',问题就解决啦!
string s;
cin >> s;
char exp[50];
int i = s.length();
for (int i = 0; i < s.length(); i++)
{
exp[i] = s[i];
}
exp[i] = '\0';