当前位置:首页 » 编程语言 » c语言汉字排序

c语言汉字排序

发布时间: 2022-08-01 12:37:42

❶ 如何用c语言实现一串中文姓名的排序(首字笔画或者字母)

数组的第一位设置成笔画数,第二位设置成首字母,排序时根据需要选择,输出时从第三位输出。
char *name="4w王";

❷ c语言按中文姓名排序问题

#include <stdio.h>
void sort_name(Staff *p) {
int i,j,max;
Staff b;
for(i = 0;i < T - 1;i++) { // 应该是T - 1,不是T
max = i;
for(j = i + 1;j < T;j++) {
if(strcmp((p + max)->name,(p + j)->name) > 0)
max = j;
}
if(max != i) {
b = *(p + max);
*(p + max) = *(p + i);
*(p + i) = b;
}
} // 这儿添加了"}"
for(i = 0;i < T;i++) {
printf("%s ",(p + i)->id);
printf("%s ",(p + i)->name);
printf("%s ",(p + i)->sex);
printf("%d %d %d ",(p + i)->data.year,(p + i)->data.month,(p + i)->data.day);
printf("%.2lf ",(p + i)->post_wage);
printf("%.2lf ",(p + i)->subsidies);
printf("%.2lf ",(p + i)->withholding);
putchar('\n');
}
}

❸ c语言怎么用姓名(汉字)进行排序

写出姓氏与第一个字母的映射表,比如
赵->Z;
钱->Q;
孙->S;
李->L;
周->Z;
吴->W;
郑->Z;
王->W

然后需要用到排序的时候,再调用它对应的字母来进行排序,也就是比较ASCII码的大小了。编码就自己去实现啦!

❹ 在c语言中我想对汉字字符串按拼音进行排序,可以直接利用strcmp函数来进行排序吗

ansi GB2312里一级汉字是按拼音排序的,其他的汉字按部首/笔划排序。所以能按拼音排序的汉字只有3000多个,直接用strcmp()比较就可以了。但是如果用的是Unicode,由于Unicode里的汉字按笔划顺序排序,所以没有办法实现按拼音排序。

代码如下:

#include<stdio.h>

#include<string.h>

intmain()

{

chara[5]="王华",b[5]="张丽",c[5]="李强";

chart[5];

if(strcmp(a,b)>0)

{

strcpy(t,a);

strcpy(a,b);

strcpy(b,t);

}

if(strcmp(a,c)>0)

{

strcpy(t,a);

strcpy(a,c);

strcpy(c,t);

}

if(strcmp(b,c)>0)

{

strcpy(t,b);

strcpy(b,c);

strcpy(c,t);

}

printf("%s %s %s ",a,b,c);

return0;

}

(4)c语言汉字排序扩展阅读

C语言 strcmp() 函数用于对两个字符串进行比较(区分大小写)。

头文件:string.h

语法/原型:int strcmp(const char* stri1,const char* str2);

参数 str1 和 str2 是参与比较的两个字符串。

strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见)。

返回值:

如果返回值 < 0,则表示 str1 小于 str2。

如果返回值 > 0,则表示 str2 小于 str1。

如果返回值 = 0,则表示 str1 等于 str2。

❺ C语言怎么用冒泡法按姓名(汉字)大小排序

你试试这个,就是排序后输出的:(是以字母表从小到大排)
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s[4]={"大军","阿姨","弟弟","妹妹"},t;
for(int i=0;i<4;i++)
{
for(int j=i;j<4;j++)
{
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
}
for(i=0;i<4;i++)
cout<<s[i]<<endl;
return 0;
}

❻ c语言如何统计输入的中文字符有多少笔画(排序)

两个思路
1、录入学生姓名的时候,就将笔画输入进去。然后统计时就可以按照预先录入的笔画来排序啦。
如果只是学校做作业,可以按这个思路。
2、维护一整套汉字笔画字典。统计时查找汉字的笔画然后排序。
如果是开发用户实际业务的软件,可以按这个思路。

❼ 求高人指教,C语言中,汉字姓名怎么按字典顺序排列

字典是按照拼音排序的,没有现成的拼音排序功能。
你可以自己做键值表对应啊。就是做数据,把百家姓和其拼音组合对应的表,可以用文件存储,也 可以用数据库存储,或者干脆直接写在代码了,用结构数组或链表加载。
然后需要排序的时候,直接用结构数组或链表排序啊。
如果你除了姓,连名字都要算在排序中,那你得把整个汉字字典的文字都做成键值表,别人起名字用什么字,谁能知道。那你这就纯粹是数据问题了。
我刚才试了一下网络搜索,网络文库里有现成的汉字拼音对照表,你可以试试,全不全我就不知道了。

❽ C语言或C++可以对汉字排序么

不容易。

用 GB2312_1980 国标码,比较双字节数值大小。

常用字的数值小于不常用字。
常用字按ABCD汉语拼音次序排列的。好办。

不常用字按笔划多少排列的。姓名里有不常用字。麻烦在这里。

❾ c语言程序 中文按首字母排序

#include <stdio.h>
#include <string.h>

#define MAX_NAME 20 //最大名字长度
#define MAX_NUM 100 //最大学生人数

void sort_bubble(char (*pc)[MAX_NAME],int n)//排序函数
{
int i,j;
char str[MAX_NAME];
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(pc[i],pc[j])>0)
{
strcpy(str,pc[i]);
strcpy(pc[i],pc[j]);
strcpy(pc[j],str);
}
}
}
}

void display_name(char (*pc)[MAX_NAME],int n)//显示这n个姓名
{
int i;
for(i=0;i<n;i++)
{
printf("%s\n",pc[i]);
}
}
int main()
{
int i=1,n;
char str[MAX_NUM][MAX_NAME];
printf("请输入学生总数:");
scanf("%d",&n);
while(i<=n)
{
printf("请输入第%d个学生姓名:",i);
scanf("%s",str[i++-1]);
}
printf("排序前的学生名单如下:\n");
display_name(str,n);
sort_bubble(str,n);
printf("排序后的学生名单如下:\n");
display_name(str,n);
return 0;
}
说明:
1:采用的是冒泡排序,用快速排序当然快些,但我忘了
2:已验证通过,结果正确。
3:随意输入人数和姓名,只要数组不越界就没有问题!
4:两个函数:排序和显示
5:给分+好评

热点内容
数组存储在哪 发布:2025-01-23 15:09:50 浏览:893
php获取二维数组的值 发布:2025-01-23 15:08:03 浏览:673
上传为防盗链图片 发布:2025-01-23 14:57:11 浏览:301
服务器essd什么意思 发布:2025-01-23 14:51:24 浏览:269
spring上传文件限制 发布:2025-01-23 14:50:30 浏览:310
奇亚币p图软件存储机 发布:2025-01-23 14:38:03 浏览:44
linux有用的命令 发布:2025-01-23 14:35:03 浏览:681
php显示缩略图 发布:2025-01-23 14:22:17 浏览:726
安卓哈利波特怎么更换账号 发布:2025-01-23 14:16:44 浏览:586
中国压缩包 发布:2025-01-23 14:10:49 浏览:499