如何在 c++ 中将字符串迭代器变量传递给函数?

How to pass string iterator variable to a function in c++?

本文关键字:变量 函数 迭代器 字符串 c++      更新时间:2023-10-16

下面的代码只是使用另一个称为递归的函数打印从主函数获得的字符串。我只是想知道如何将字符串迭代器变量传递给另一个函数。但是我编写的代码不会打印任何结果。有人可以告诉我错误是什么以及我可以做些什么来使代码工作吗?

#include <iostream>
#include <string>
using namespace std;
void recurse(string::iterator &start, string::iterator &end)
{
while(start != end)
{
cout << *start;
++start;
}
}
int main()
{
string s;
string::iterator i = s.begin(), j = s.end();
cout << "Enter the string here: ";
getline(cin, s);
recurse(i, j);
}

在初始化期间,i and j指向无效地址(因为s为空(。但是当你接受输入时,它会得到一个新的字符串,i and j指向旧地址(无效(。

因此,在接受输入后声明迭代。

string s;
cout << "Enter the string here: ";
getline(cin, s);
string::iterator i = s.begin(), j = s.end();
recurse(i, j);