我们目前正在学习C ++,我不认为这段代码要求我们使用指针。
所以,对于答案的建议,请告诉我是否可以在没有指针的情况下完成。
问题:如何比较一个char数组,以便您可以按升序对它们进行排序?
详细信息:
目标:在插入名称时按升序对名称进行排序
我们在这里:
char name[1024]; // which is a part of a Struct
插入有效。一旦插入。我正在尝试重新排列顺序,以便名称在
中升序。
我有:
if (RecordCollection[i].name > RecordCollection[i+1].name) // for comparing
我认为这可能是问题所在? C ++可以这样比较吗?比如,将约翰与艾米比较
那一行?After that if statement, I am using swapping the elements so they are in correct order. For example:
If John[0] the current name is > than Amy[1], then copy John to a temporary.
Then copy Amy to index[0].
Then copy John in temporary to index[1].
在输入这个问题时,我想我需要逐一比较char ... J与A,如果不相同那么
排序。如果相同,移动到下一个char,直到找到不同的排序。但后来我不知道如何
逐个获取char。
答案 0 :(得分:0)
如果您使用字符串,请参阅strcmp
。
man
strcmp
大于零的值表示不匹配的第一个字符在
str1
中的值大于str2
中的值;小于零的值表示相反。
要对数组进行排序,您还可以使用标准C库中的qsort
。
#include <string.h>
int
cmp (const void *p, const void *q)
{
return strcmp (p, q);
}
qsort (RecordName, nelems, 1024, cmp);