我是 C++ 中字符串的新手。我只是对下面代码的工作感到困惑(用于反转字符串)。
std:: string rev;
for(int i= str.size()-1; i>=0; --i)
{
rev.push_back(str[i]);
}
std:: cout<<" Reversed= "<<rev<<endl;
问题是字符串的最后一个字符是空字符'\0'
。因此,当循环运行第一次迭代时,它应该在开头放置一个空字符,rev
还有一件事,这里的字符串rev
可能不是空终止的,因为'\0'
它没有被分配为字符串的最后一个字符。
但是当我执行程序时,它工作正常。我知道我在思考这一切时错了。谁能解释一下工作?我会很高兴并感谢你:)