搜索
首页 电脑/网络 程序设计 C/C++

c中能否实现用某一变量记录其他变量名的字符串从而替代其他变量

  c中能否实现用某一变量记录其他变量名的字符串从而替代其他变量。 解释一下,好比一个学生成绩纪录系统链表,用户希望能够实现两条查询成绩的途径,姓名和学号。现在已经有一个能成功实现查找功能的函数,这个函数在编写的时候是按照查找学号进行的,如果要求查找姓名的方法可能需要重新把这个函数的代码复制一遍然后把学号改成姓名。
  可是没有人会愿意这么把一个代码写上两遍吧。 如果我们假设姓名的变量名为name, 学号的变量名为 num, 现在的问题是,能否用一个字符串变量,比如s,在查找函数中起到代替作用。 即如果选择按学号查找,那么设置s的内容为num,在查找函数中所有num都用s替代,而在编译的时候能够识别出s就是所谓的num。
   而如果按姓名查找那么只要设置s的内容为name就可以了。 如果能实现,请详细说明,最好留下代码(C的,不要C++)。如果不能实现,那么有没有其他能解决我上述例子中的问题的方法,也请详细说明。好的我再加分。谢谢 。

全部回答

2008-09-05

0 0
    这里 num 和 name 都是 char[],否则麻烦点。 #include #include typedef struct { char num[10]; char name[10]; }sss; sss student[100]; int n; int findStudents(int flag, char info[]); //flag=0按学号查找,flag=1 按姓名查找,info[]为学号或姓名 int main(){ n=3; strcpy(student[0]。
    num,"10"); strcpy(student[0]。name,"Name0"); strcpy(student[1]。num,"11"); strcpy(student[1]。
  name,"Name1"); strcpy(student[2]。  num,"12"); strcpy(student[2]。name,"Name2"); findStudents(0,"11"); return 0; } int findStudents(int flag, char info[]){ int i; char s[10]; for(i=0;i<n;i++){ if(flag==0) strcpy(s,student[i]。
    num); else if(flag==1) strcpy(s,student[i]。name); if(strcmp(s,info)==0){ printf("ID = %s, Name = %s\n",student[i]。
  num,student[i]。  name); return 0; } } return 1; }。

2008-09-05

119 0
    你说的一个学生成绩纪录系统链表;是否该有一个保存学生成绩的数组?我不知道你是怎么实现的;如果是用一个数组来保存学生成绩和对应学生学号的话;那么应该是利用了一个二维数组或者是两个一维数组,通过循环来控制并保存学生信息的吧? 如果你用了两个一维数组a[] ,b[] 。
    那再加一个字符串数组 c[],通过字符串的比较方法;跟a[]和b[]关联起来是不是可以实现呢? 用多维数组我想也是可以实现的。 不知道我的想法对不对,也不知道你已经解决的代码。
  只是给你提点建议,具体的方法还是得靠自己实现的;希望能对你有点帮助~ 。  。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报