我有一个计划的地方结构在一个联系列基于'name',他们有储存在其中。

找到自己的位置在该列表中,我需要弄清,如果该名im插入之前或之后的字母表然后那些在结构旁边。

名称的内部结构,我已经访问。我不需要一个全comaparison如果是更多的工作,即使只是第一封信是好的。

谢谢你的帮助!

有帮助吗?

解决方案

这不是我清楚你的问题是什么,但像这样的工作:

if (node1->name[0] <= node2->name[0]) {
  ...
} else {
  ...
}

这将比较名字的第一个字母中的每个节点。

其他提示

如果你有两个C字符串,ab,可以简单地比较它们的第一元素:

*a == *b

其中==可以是任何六个关系运算符的。

请记住,C字符串,所述char*指向字符串中的第一个字符。

strcmp() 比较两个C strings和会告诉你什么了他们,或者如果它们是相同的。如果你不关心的情况下,可以使用 strcasecmp().这些功能也不会比较的任何更多的串于必要确定什么才返回。

您可以简单地迭代通过列表,并插入基于比较的正确位置的新元素,你做的,同时通过每个元素。最简单的区分大小写的版本可以直接通过比较字母的数值(例如a[0] < b[0])来完成,或者你可以,如果你想不区分大小写(见ctype.h)都转换为一个常见的情况。或者你可以用strcmp比较全的话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top