c语言拼音函数 c语言输入数字输出拼音

C语言程序 按中文拼音的首字母排序 要求程序中有两个函数 。/**已经修改如下.
*@author:banxi1988
*@date:2010-12-9
*/
#includestdio.h
#includestdlib.h
#includestring.h
#define M 5 /**同学的人数 如果你想多输入些的话自己改吧. */
void input(char *name[],int n);
void sort(char *name[],int n);
int main(int argc, char **agrv){
char*name[M]; /**保存学生的名字.*/
int i= 0;
input(name,M);
sort(name,M);
printf("名字按拼音排列输出如下:\n");
for(i=0;iM;i)
{
printf("%s\t",name[i]);
}//for:
printf("\n");
return 0;
}//
void input(char *name[],int n){
charstr[20]; /**拼音的长度. 20-1 ,自己改 */
int i;
printf("请输入 %d 个学生的名字(请用拼音) :\n",M);
/**这里也比较关键,好好领会.**/
for(i=0; in; i)
{
scanf("%s",str);
name[i] = (char *)malloc(sizeof(char)*(strlen(str)));
strcpy(name[i],str);
}//for:
}//input
void sort(char *name[],int n){
/**冒泡法实现排序****************/
char *tmp;
int i,j;
for(i=0;in;i)
{
for(j=1;jn-i;j)
{
/***两个名字位置交换,将较大的名字放到数组的前面.*/
if(strcmp(name[j],name[j-1])0)
{
tmp=name[j-1];
name[j-1]= name[j];
name[j]=tmp;
}
}//inner for
}//outer for
}//sort
/***** 测试结果:
【c语言拼音函数 c语言输入数字输出拼音】请输入 5 个学生的名字(请用拼音) :
abc cano java perl banxi
名字按拼音排列输出如下:
abc banxi cano java perl
***/
在c语言中我想对汉字字符串按拼音进行排序,可以直接利用strcmp函数来进行排序吗ansi GB2312里一级汉字是按拼音排序的,其他的汉字按部首/笔划排序 。所以能按拼音排序的汉字只有3000多个 , 直接用strcmp()比较就可以了 。但是如果用的是Unicode,由于Unicode里的汉字按笔划顺序排序,所以没有办法实现按拼音排序 。
代码如下:
#includestdio.h
#includestring.h
int main()
{
char a[5] = "王华", b[5] = "张丽", c[5] = "李强";
char t[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\t%s\t%s\n",a, b, c);
return 0;
}
扩展资料
C语言 strcmp() 函数用于对两个字符串进行比较(区分大小写) 。
头文件:string.h
语法/原型:int strcmp(const char* stri1,const char* str2);
参数 str1 和 str2 是参与比较的两个字符串 。
strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0) 。
返回值:
如果返回值0 , 则表示 str1 小于 str2 。
如果返回值0 , 则表示 str2 小于 str1 。
如果返回值 = 0,则表示 str1 等于 str2 。
c语言输入N个姓名拼音,找出按字母顺序排在最前的拼音调试了一下,问题在字符串操作 。
最简单的办法是使用系统提供的字符串操作函数 。
修改代码和注释如下:
#includestdio.h
#include string.h//增加字符串操作支持
#define N 5
int main()
{
char cs[N][20],temp[20]="0";//定义时初始化字符串数组
int i,p, maxLen;
printf("input names:\n");
for(i=0;iN;i)
gets(cs[i]);
printf("\n");
// temp[20]="0";//字符串操作不能直接赋值,使用strcpy函数
for(i=1;iN;i)
{ //对二维数组的行进行循环
//if (cs[i]temp)
if(strcmp(cs[i],temp)0)//字符串比较使用strcmp函数
strcpy(temp,cs[i]); //字符串赋值,使用strcpy函数
}
printf("The name is:%s\n", temp);
return 0;
}
在VC6编译通过,如下图:
供参考 。
c语言函数怎么发音?按英文 。
scanf --- 由 scan 和 f 组成 。scan 扫描的意思 , 普通话音“斯看”,f 按字母读音 “爱夫” , f 是 formated (有格式)缩写 。连读“斯看-爱夫” 。
printf--- 由 print 和 f 组成 。print 打印,普通话音 扑林特,其中扑 不带韵母地发音 。f 按字母读音 “爱夫”,f 是 formated (有格式)缩写 。连读 扑林特-爱夫
gets --由 get 和 s 组成 。get 取得的意思,普通话音“盖特”,其中特 不带韵母地发音. s 按字母读音. s -- strings 缩写 。
fscanf -- 由f , scan 和 f 组成 。两个f 分别按字母读音 “爱夫 。连读“爱夫-斯看-爱夫” 。
其他类推 。
C语言拼音打字程序问题//这段程序错误太多,而且代码风格太乱;
//不过估计您是个初学者 , 就帮你的程序按你思路修改了
//运行结果如下:
模仿拼音输入法
请输入拼音wo
wo
0.挝 1.莴 2.涡 3.窝 4.蜗 5.倭 6.踒 7.喔 8.我 9.肟 10.沃 11.卧 12.偓 13.握 14.幄
15.渥 16.龌 17.涴 18.硪 19.斡 请输入对应的序号选字:2

//修改后程序如下,希望对你有用!
#includestdio.h
#includestring.h
int main() //是int还是void,根据编译器,我用的是CodeBlocks需要用int
{
char wo[]= {"wo"};
char wo_ch[]= {"挝莴涡窝蜗倭踒喔我肟沃卧偓握幄渥龌涴硪斡"};
printf("%d:%s\n", strlen(wo_ch), wo_ch);
//char str_input[3];
unsigned int i=0,str_ch_len=strlen(wo_ch);
printf("模仿拼音输入法\n");
printf("请输入拼音wo\n");
//scanf("%s",str_input);
char str_input[3];
gets(str_input);//输入拼音
//if(str_input==wo)//修改如下(字符串是不能直接比较的?。?
if (0==strcmp(str_input,wo))
{
for(i=0; istr_ch_len; i =2)
//printf("%d.%c "i,wo_ch[i]); //修改如下(双引号之后应该有,号)
printf("%d.%c%c ",i/2,wo_ch[i],wo_ch[i 1]);
last:
printf("请输入对应的序号选字:");
//scanf("%d" i); //修改如下
unsigned int n;
scanf("\u", n);
if (2*nstr_ch_len)
{
printf("你要选的字符不存在\n");
goto last;
}
else
{
printf("%c%c",wo_ch[2*n],wo_ch[2*n 1]);
}
}
else
{
printf("对不起,没有找到该拼音的字库\n");
}
return 0;//如果主函数是void,删除此行!
}
请问如何在C语言中输入数字获得拼音?char* inttochar(int a)
{
switch (a)
{
case 0:
return "ling";
break;
case 1:
return "yi";
break;
case 2:
return "er";
break;
case 3:
return "san";
break;
case 4:
return "si";
break;
case 5:
return "wu";
break;
case 6:
return "liu";
break;
case 7:
return "qi";
break;
case 8:
return "ba";
break;
case 9:
return "jiu";
break;
}
}
int main()
{
int i;
printf("请输入一个数字:-9999-9999\n");
scanf("%d", i);
string ret = "";
if (i0)
ret = ret"fu ";
i = -i;
int a = 0;
if (i = 1000)
{
a = i / 1000;
ret = retinttochar(a)" qian ";
i = i - 1000 * a;
a = i / 100;
if(a != 0)
ret = retinttochar(a)" bai ";
i = i - 100 * a;
a = i / 10;
if(a != 0)
ret = retinttochar(a)" shi ";
i = i - 10 * a;
a = i;
if(a != 0)
ret = retinttochar(a);
}
else if (i1000i = 100)
{
a = i / 100;
ret = retinttochar(a)" bai ";
i = i - 100 * a;
a = i / 10;
if (a != 0)
ret = retinttochar(a)" shi ";
i = i - 10 * a;
a = i;
if (a != 0)
ret = retinttochar(a);
}
else if (i100i = 10)
{
a = i / 10;
if (a != 0)
ret = retinttochar(a)" shi ";
i = i - 10 * a;
a = i;
if (a != 0)
ret = retinttochar(a);
}
else if (i10i = 0)
{
ret = retinttochar(i);
}
printf(ret.c_str());
return 0;
}
真尼玛哔c语言拼音函数了狗了c语言拼音函数,这破玩意写起来真费事
关于c语言拼音函数和c语言输入数字输出拼音的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读