输入字符串不需要写循环。
for (n = 0;; n++)
{
cin >> str[n];
if (str[n]=='\0')
break;
}
改成这样:
cin >> str;
n = str.length();
首先,C++字符串类string不应该这么用
你可以直接 cin >> str,这样就直接输入了一串字符串
想要得到长度,直接调用str.size()就可以。
你这个又使用string,又用str[]这种类似使用C语言char *s的操作方法,是很不好的。
其次
在 if(str[n] == '\0') 这一语句中,你判断的是读到字符串结束符,但是使用cin>>方法是无法得到字符串结束符的,同时也无法得到换行符'\n'以及空格
所以这里进入了死循环。
最后一个小建议
第二个for循环中,判断退出条件可以是 i < n / 2; 当然你的也没错
over~