如何将从用户那里获取的输入分成两部分,并将它们分配给C++中的两个不同的数组

How to divide the input taken from user in two parts and assign them to two different arrays in C++?

本文关键字:C++ 分配 两个 数组 那里 获取 用户 输入 两部分      更新时间:2023-10-16

如果我们通过询问用户来获取用户的输入,如下所示:

cout << "Enter your course code and course name: ";

现在如果用户输入CS201 Introduction to Programming,我怎么只能分配代码部分,即 CS201数组,比方说;

char courseCode[10];

以及如何在数组中分配名称部分,假设:

char courseName[50];

我想使用下面定义的结构对 5 名学生执行此操作:

struct student
{
    char courseName[50];
    char courseCode[10];
};
student stu[5];

一旦你记住输入运算符>>在空格上停止,并且还知道std::getline函数,它实际上很简单。

然后你可以做一些类似的事情

std::string courseCode;
std::string courseName;
std::cin >> courseCode;
std::getline(std::cin, courseName);

请注意,我对字符串使用 std::string 而不是数组。这是你真正应该使用的。如果你不被允许(你的老师或其他什么)并且必须使用数组,那么你不能使用std::getline而是必须使用std::istream::getline

输入存储在单个字符串中,例如x

现在x对第一个空格执行线性搜索,并围绕第一个空格拆分字符串。将两个生成的字符串存储在结构中。

我使用 cin.getline() 函数解决了我的问题,以在令牌指针中获取字符串,然后使用strchr(char [], cahr) <string>头文件将当前字符串与第一个空格出现的位置分开。然后我使用 strcpy() 函数将两个分隔的字符串复制到我想要的结构元素中。