C++中怎么用数组同时存放多个字符串呢?

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:29:52
在编写学生学分成绩处理系统时,需要将每个学生的选课代码一一存放,每个学生有若干个学科代码,且数目几乎不一样,怎样用数组去存放一个学生的选课的课程名信息呢?谢谢指点……
最好用个简单的例子说明一下啊
我需要把多个字符串统一存放,统一处理,用什么方法呢?
十分谢谢……

1.动态结构链表
2.动态数组,课程不统一,可以使用动态方式去保存

比如
class Student
{
private:
long Id;
string name;
long course_id;
int course_count;
string *m_pCourse;

public:
void audit();
};

方法一:
将学科代码和课程名封装在一个结构体内,用一个链表来管理学科这一环,学校有多少学科全部添加进去,作为一个全局对象来使用,以后哪个学生只要根据他的学科代码去找课程名信息就可以了,当然前提是你的链表要提供功能函数。

方法二:
你不愿意写链表,那么就用 string 数组为存放课程名信息,但是这样要做到学科代码和课程名的一一对应,是很麻烦的。

所以,我建议将数据库原理的思想搬过来,将一一对应关系的字段“捆绑”在一起。

虽然不是很推荐这样做,但是 数组即为一个连续的内存空间,只要保证多个字符串不相互影响,是可以的。
char str[255] = {0};
char *s1 = str;
char *s2 = str + 99;

这时,s2就从str的第100个字符开始存储了,那么前100个字符就可以当做一个小字符串s1,后面的也可以单独作为一个字符串s2了,但是如果s1超过了100个字符,那么就会影响到其他字符串,所以不建议这样做。

c++ 存储字符串最好用 std::string

我觉得用链表比较好吧

C++中怎么用个数组来存放汉字??? c语言的随机生成函数应该怎么用?怎么才能让它同时生成好几个随机数?并把它存放在一个数组里? C语言 将数组中10个元素头尾互换,逆序存放再输出 C语言----输入16个数据存放到二维整型数组a[4][4]中,输出最大值、最小值以及位置。 C语言,如果用键盘向数组中输入任意多个数字? 有15个数存放在一个数组中,输入一个数,要求用半查找法找出该数是数组中第几个元素的值。 有15个数按小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数组中第几个元素的值. c #中怎么创建动态数组 请教C语言程序设计:输入10个整数存入数组,要求逆序重新存放后再输出。 c语言:将100以内的素数存放到一个数组中