|
10鱼币
本帖最后由 sunnyrubik 于 2019-1-5 18:01 编辑
- //按照名字拼音对链表进行排序
- void SortList()
- {
- int i,j;
- int nCount = 0;
- STUNODE *Temp = Head;//STUNODE是之前定义的一个链表节点
- //获取总共多少个节点
- while(Temp != NULL)
- {
- nCount++;
- Temp = Temp->Next;
- }
- //再次遍历赋值
- Temp = Head;
- STUNODE info[nCount];
- STUNODE temp;
- for(i = 0;i < nCount;i++)
- {
- strcpy(info[i].arrStuNum,Temp->arrStuNum);
- strcpy(info[i].arrStuName,Temp->arrStuName);
- info[i].iStuScore = Temp->iStuScore;
- Temp = Temp->Next;
- }
- FreeList();//这是一个清空链表的函数
- for(i = 1; i<nCount ; i++)
- {
- for(j = 0;j < nCount-i;j++)
- {
- if(strcmp(info[j].arrStuName,info[j+1].arrStuName) > 0)
- {
- temp = info[j];
- info[j] = info[j+1];
- info[j+1] = temp;
- }
- }
- }
- for(i = 0; i< nCount;i++)
- {
- AddStuToTail(info[i].arrStuNum,info[i].arrStuName,info[i].iStuScore);//尾添加函数
- }
- }
复制代码
这个函数不知道为什么有的时候灵有的时候不灵,好像strcmp比较汉字的话有点问题,请各位帮忙看看,不胜感激]
你需要学习一下编码机制 宽字符与多字节 百度一下了解一下就好了 这个学习不复杂(不涉及包转换)
你把完整的代码贴上去 人造人大神会给你详细的解决的 毕竟光看理解不好整
|
-
最佳答案
查看完整内容
你需要学习一下编码机制 宽字符与多字节 百度一下了解一下就好了 这个学习不复杂(不涉及包转换)
你把完整的代码贴上去 人造人大神会给你详细的解决的 毕竟光看理解不好整
|