ホーム>source

次のコードは、recurseと呼ばれる別の関数を使用してmain関数から取得した文字列を出力するだけです。文字列イテレータ変数を別の関数に渡す方法を知りたかっただけです。しかし、私が書いたコードは結果を出力しません。誰かがエラーとは何か、コードを機能させるために何ができるか教えてもらえますか?

<前>ウィズウィズ #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); }
あなたの答え
  • 解決した方法 # 1

    初期化中、 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);

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - python:データフレームは、ベクトルを表す列を作成します