陷入C ++数据结构程序

时间:2013-10-25 09:35:25

标签: c++ data-structures

编写一个程序,提示用户输入字符串,并使用递归函数向后打印字符串。不要使用任何全局变量;使用适当的参数。你能给我一些提示吗,比如伪代码?

int stringbackwards(string a){                  
if()


else


}


int main(){

    string name;

    cout<<"Write a name: ";           
    cin>>name;

    cout<<"Backwards "<<stringbackwards(name);

    return 0;
}

2 个答案:

答案 0 :(得分:4)

为什么要使用递归呢? 在c ++中有一个很好的概念叫做迭代器,已经有了这个功能实现:)

http://www.cplusplus.com/reference/string/string/rbegin/

所以在你的情况下:

cout<<"Backwards ";
for (std::string::reverse_iterator rit=name.rbegin(); rit!=name.rend(); ++rit)
{
    cout << *rit;
}

但为了使它递归,我会这样做(Pseudocode)。

function backwards(std::string& name, unsigned int length)
{
    unsigned int length = name.length();
    unsigned int currLength = length - 1;

    if (length > 0)
    {
         backwards(name, currLength);
    }

    std::cout << name[length - currLength - 1];
}

答案 1 :(得分:0)

提示:

说字符串是“abcd”。你想打印“dcba”。换句话说,您首先打印最后一个字母。

因此,您将首先深入了解递归,然后在回来后打印字母'a'。