排序串通过的第一个字母[C]
-
23-09-2019 - |
题
我有一个计划的地方结构在一个联系列基于'name',他们有储存在其中。
找到自己的位置在该列表中,我需要弄清,如果该名im插入之前或之后的字母表然后那些在结构旁边。
名称的内部结构,我已经访问。我不需要一个全comaparison如果是更多的工作,即使只是第一封信是好的。
谢谢你的帮助!
解决方案
这不是我清楚你的问题是什么,但像这样的工作:
if (node1->name[0] <= node2->name[0]) {
...
} else {
...
}
这将比较名字的第一个字母中的每个节点。
其他提示
如果你有两个C字符串,a
和b
,可以简单地比较它们的第一元素:
*a == *b
其中==
可以是任何六个关系运算符的。
请记住,C字符串,所述char*
指向字符串中的第一个字符。
strcmp()
比较两个C strings和会告诉你什么了他们,或者如果它们是相同的。如果你不关心的情况下,可以使用 strcasecmp()
.这些功能也不会比较的任何更多的串于必要确定什么才返回。
您可以简单地迭代通过列表,并插入基于比较的正确位置的新元素,你做的,同时通过每个元素。最简单的区分大小写的版本可以直接通过比较字母的数值(例如a[0] < b[0]
)来完成,或者你可以,如果你想不区分大小写(见ctype.h
)都转换为一个常见的情况。或者你可以用strcmp
比较全的话。
不隶属于 StackOverflow