私はまもなくC++試験の演習を解決します。次の練習を考えてみましょう:C++で2つの文字列を返す
旅行代理店はリストを使用して旅行を管理します。各旅行代理店は、出発のその点を登録、到着、距離と時間の時点/期間
1)のための旅行
2のリストを表すために必要な構造を定義)整数I与えられ、関数を書きます
struct list{ char departure[100]; char arrival[100]; double distance; double time; list* next = NULL; };
私の問題は、関数である:私は構造を定義
が容易な位置に旅の到着の出発地点のポイントを返します。実際の仕事は、i番目の旅行を見つけるのは簡単です。しかし、どのように私は2つの文字配列/文字列の出発と到着を返すことができますか?これが私の試験の質問だったら、私はこれを次のように解決したでしょう:
typedef list* list_ptr;
list_ptr get_trip(list_ptr head, const int i){
if(i<0 || head==NULL){
return NULL;
}
for(int k = 0; k<i;k++){
head = head->next;
if(head==NULL){
return NULL;
}
}
return head;
}
私はリスト要素へのポインタを返しています。 1つは出発と到着を印刷する必要があります。私は戻り値の型char *を持つ関数を使って出発点または到着を簡単に返すことができました。 2弦を正しく返すにはどうすればいいですか? 私はstd :: tupleを使ってこれを行う方法があることを知っていますが、私たちが講義でそれを持っていないのでこれを使うことはできません(クラスまで、本当に基本的なものしか持っていませんでした)。
追加ライブラリを使用しなければ両方の文字列を返すことはできません。で開始する
乾杯
[コンテナ](http://en.cppreference.com/w/cpp/container):
今、あなたは、単純な関数を書くことができますか?構造? [ペア](http://en.cppreference.com/w/cpp/utility/pair)? [タプルズ](http://en.cppreference.com/w/cpp/utility/tuple)? –
また、2つの文字列参照を関数に渡して、入力することもできます。そして、char配列の代わりに 'std :: string'を使います。 – Unimportant
[関数からの戻り値]関数を見てください(http://stackoverflow.com/documentation/c%2b%2b/487/returning-several-values-from-a-function) – Jarod42