如何将用户的输入分为两部分,并将它们分配给C ++中的两个不同的数组?

时间:2017-01-12 14:42:47

标签: c++ arrays structure

基本上如果我们通过询问用户的输入,如下所示:

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

现在如果用户输入“CS201编程简介”,现在我怎么才能将代码部分,即'CS201'分配给一个数组,让我们说吧;

char courseCode[10];

如何在数组中指定名称部分,让我们说:

char courseName[50];

我想对5名学生使用以下定义的结构:

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

student stu[5];

请帮助我,我无法弄清楚如何将输入分成两部分并将它们分配给两个不同的数组,这些数组存在于我在上面定义的结构中。谢谢你提前。

3 个答案:

答案 0 :(得分:3)

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

然后你可以做类似

的事情
std::string courseCode;
std::string courseName;

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

请注意,我使用std::string作为字符串而不是数组。这就是真正应该使用的内容。如果您不允许(由您的老师或其他人)并且必须使用数组,则您无法使用std::getline,而是必须使用std::istream::getline

答案 1 :(得分:0)

将输入存储在一个字符串x

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

答案 2 :(得分:0)

伙计我使用cin.getline()函数解决了我的问题,以获取令牌指针中的字符串,然后使用strchr(char [], cahr) <string>头文件将当前字符串与第一个白色的第一个字符串分开空间来了。然后我使用strcpy()函数将两个分离的字符串复制到我所需的结构元素中。

感谢大家帮助我:)