C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?相关的知识,希望对你有一定的参考价值。
char num[15]里面存放的是学号,我现在要按照学号来对我输入的学生成绩进行排序,可不知道这个怎么比较,谁知道的帮下我。。。
可以调用strcmp函数,在头文件string.h里面比如你定义了两个结构体s1,s2,那么比较的方法为:
int i;
i=strcmp(s1.num,s2.num);
如果i<0表示s1.num小于s2.num
如果i=0表示s1.num等于s2.num
如果i>0表示s1.num大于s2.num追问
我写的是k=strcmp(char stu[j].num,char stu[j-1].num),然后用if(k>0)执行交换语句,VC报错说缺少")",这是怎么回事?
追答你试下k=strcmp(stu[j].num,stu[j-1].num)
追问刚试了下,把char去掉后不报错了。但是还是没有打到效果。我还是把这个函数发出来,麻烦你帮我看看吧:
sort_bynumber(struct student stu[],int n)
int i,j,k;
for(i=1;i0)
t=stu[j-1];
stu[j-1]=stu[j];
stu[j]=t;
}t也是我定义的一个结构体。
我用的就是冒泡法,呵呵。主要是纠结在比较上面哦。。
参考技术B 解决方法:1,换个类型。2.一位一位的比,就是一个字符一个字符来,比到有大小就可以。
3把 字符串 转换成数字long 型的,这个函数 写起来也还行的,代码量不大。 参考技术C #include <string.h>
然后使用strcmp()函数比较字符串是否相同。strcmp()返回0表示两个字符串相同。
关注我,有问题可以直接问我!!! 参考技术D 假设
struct student
char num[15]
mstu;
则mstu.num[n] n[0,14]就相当于一个字符数组追问
这个我知道,我主要问的是如何对里面的学号进行比较,我函数都写的差不多了,就是if语句里面的判断内容不知道怎么写。
追答一般字符串你怎么比较呢?
追问strcmp这个函数我也试了,VC6.0老是提示我说缺少)。
追答if(strcmp(mstu.num,"ABCD...") 应该可以的呀
k=strcmp(char stu[j].num,char stu[j-1].num),不要有char 同意 虞明明
以上是关于C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?的主要内容,如果未能解决你的问题,请参考以下文章
用 结构体地址 调用 结构体中元素 非常慢的问题,怎么解决?但就C语言,不说引用