永发信息网

C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?

答案:5  悬赏:0  手机版
解决时间 2021-11-13 05:04
  • 提问者网友:感性作祟
  • 2021-11-12 06:18
C语言中在定义了一个结构体,里面有char num[15],请问如何比较里面的内容?
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-11-12 07:39
可以调用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;i for(j=n-i;j { k=strcmp(stu[j].num,stu[j-1].num);
if(k>0)
{
t=stu[j-1];
stu[j-1]=stu[j];
stu[j]=t;
}
}
}t也是我定义的一个结构体。
全部回答
  • 1楼网友:春色三分
  • 2021-11-12 10:59
假设
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 同意 虞明明
  • 2楼网友:痴妹与他
  • 2021-11-12 10:53
#include
然后使用strcmp()函数比较字符串是否相同。strcmp()返回0表示两个字符串相同。
关注我,有问题可以直接问我!!!
  • 3楼网友:蕴藏春秋
  • 2021-11-12 09:27
这不是和普通的数组排序很像吗。你可以用冒泡法,一个个元素比较,如果是升序排列,最小的排前面;如果是降序排列,最大的排前面。你可以查找一下“冒泡法”,很经典的C程序案例。追问我用的就是冒泡法,呵呵。主要是纠结在比较上面哦。。
  • 4楼网友:患得患失的劫
  • 2021-11-12 08:17
解决方法:1,换个类型。
2.一位一位的比,就是一个字符一个字符来,比到有大小就可以。
3把 字符串 转换成数字long 型的,这个函数 写起来也还行的,代码量不大。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯