如何将从用户那里获取的输入分成两部分,并将它们分配给C++中的两个不同的数组
How to divide the input taken from user in two parts and assign them to two different arrays in C++?
如果我们通过询问用户来获取用户的输入,如下所示:
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()
函数将两个分隔的字符串复制到我想要的结构元素中。
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 为什么我可以使用比分配的内存更多的内存
- 使用RAII在给定次数的迭代后重新分配资源