作为家庭作业的一部分,我需要能够获取输入字符串并使用字符串函数列表以多种方式对其进行操作。第一个函数接受一个字符串并使用 for 循环将其反转。这就是我所拥有的:
#include <iostream>
#include <string>
namespace hw06
{
typedef std::string::size_type size_type;
//reverse function
std::string reverse( const std::string str );
}
// Program execution begins here.
int main()
{
std::string inputStr;
std::cout << "Enter a string: ";
std::getline( std::cin, inputStr );
std::cout << "Reversed: " << hw06::reverse( inputStr )
<< std::endl;
return 0;
}
//reverse function definition
std::string hw06::reverse( const std::string str )
{
std::string reverseStr = "";
//i starts as the last digit in the input. It outputs its current
//character to the return value "tempStr", then goes down the line
//adding whatever character it finds until it reaches position 0
for( size_type i = (str.size() - 1); (i >= 0); --i ){
reverseStr += str.at( i );
}
return reverseStr;
}
程序要求输入,然后返回此错误:
在抛出 'std::out_of_range' what(): basic_string::tat 的实例后调用终止
我真的不知道我在这里做错了什么。循环对我来说似乎是正确的,所以我误解了如何引用该函数?