比较&用C ++对Char数组进行排序

时间:2013-02-09 16:45:54

标签: c++ c sorting char compare

我们目前正在学习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。

1 个答案:

答案 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);