| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 429 人关注过本帖
标题:以拼音形式给名字排序
只看楼主 加入收藏
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
结帖率:84%
收藏
已结贴  问题点数:20 回复次数:7 
以拼音形式给名字排序
怎样以拼音形式给名字排序呢??
2014-11-20 21:02
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
收藏
得分:0 
给个例子出来……

[qq]949654600[/qq]
2014-11-20 21:37
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
收藏
得分:0 
zhang
ziang
zaang
zbang
zcang
zdang
zeang
zfang
zgang
zhang

zaang
zbang
zcang
zdang
zeang
zfang
zgang
zhang
zhang
ziang
2014-11-20 21:52
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:2 
自然排序或字典排序,根据字符ascii码表比较排序。特别要注意排序的稳定性。建议用稳定排序算法由单词最后一位开始逐字符比较。

[ 本帖最后由 liao06550107 于 2014-11-21 06:39 编辑 ]

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2014-11-21 06:30
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:2 
从前往后排序单个字符,相同的则排序下一个字符
2014-11-21 09:47
yangcaifei
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:2
帖 子:127
专家分:216
注 册:2014-11-3
收藏
得分:0 
回复 2 楼 yahwei
zhang
ziang
zaang
zbang
zcang
zdang
zeang
zfang
zgang
zhang

zaang
zbang
zcang
zdang
zeang
zfang
zgang
zhang
zhang
ziang
2014-11-21 12:23
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:2 
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
2014-11-21 16:22
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
收藏
得分:14 
回复 6 楼 yangcaifei
程序代码:
#include <stdio.h>
#include <string.h>

#define MAX_LEN 80

char str[][MAX_LEN] = {"zhang","ziang","zaang","zbang","zcang","zdang","zeang","zfang","zgang","zhang","\0"} ;

int
main ( void )
{
    int i, j;
    char temp[MAX_LEN] ;
    i = 0 ;
    printf ( "********************\n排序前:\n" ) ;
    while ( strcmp ( str[i], "\0" ) ) {
        puts ( str[i++] ) ;
    }
    
    /*
    **冒泡排序
    */
    for ( i = 0; strcmp ( str[i], "\0" ); i++ ) {
        for ( j = i + 1; strcmp ( str[j], "\0" ); j++ ) {
            if ( strcmp ( str[i], str[j] ) > 0 ) {
                strcpy ( temp, str[i] ) ;
                strcpy ( str[i], str[j] ) ;
                strcpy ( str[j], temp ) ;
            }
        }
    }

    i = 0 ;
    printf ( "********************\n排序后:\n" ) ;
    while ( strcmp ( str[i], "\0" ) != 0 ) {
        puts ( str[i++] ) ;
    }
    return 0 ;
}



没有更多的信息,所以写了这个刚好满足条件的代码。

[qq]949654600[/qq]
2014-11-21 16:42
快速回复:以拼音形式给名字排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018940 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved