【发布时间】:2017-05-30 12:57:44
【问题描述】:
我正在为即将参加的 C++ 考试解答练习题。考虑以下练习:
一家旅行社使用列表来管理其行程。对于每次旅行,该机构都会记录其出发点、到达点、距离和时间/持续时间
1) 定义表示行程列表的必要结构
2) 编写一个函数,给定整数 i,返回位置 i 的行程的出发点和到达点
定义结构很简单:
struct list{
char departure[100];
char arrival[100];
double distance;
double time;
list* next = NULL;
};
我的问题是功能。实际工作中,找第i趟很容易。但是我怎样才能返回两个字符数组/字符串离开和到达?如果这是我考试中的一个问题,我会这样解决:
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;
}
我正在返回一个指向列表元素的指针。然后必须打印出发和到达。通过使用返回类型为 char* 的函数,我可以轻松地返回出发或到达。如何正确返回 2 个字符串? 我知道使用 std::tuple 可以做到这一点,但我不能使用它,因为我们在讲座中没有使用它(我们只有非常基本的东西,直到上课)。
如果不使用其他库就无法返回两个字符串,我说得对吗?
干杯
【问题讨论】:
-
Containers?结构? Pairs? Tuples?
-
您还可以将 2 个字符串引用传递给函数以进行填充。并使用
std::string代替 char 数组。
标签: c++ list return return-type