本文目录一览:
- 1、求高人指教,C语言中,汉字姓名怎么按字典顺序排列
- 2、C语言!!!!字典!!!!!
- 3、c语言 密码字典
- 4、用c语言编写电子英汉词典。
- 5、C语言简易英汉字典
- 6、如何用c语言做一个简单的英语词典
求高人指教,C语言中,汉字姓名怎么按字典顺序排列
字典是按照拼音排序的,没有现成的拼音排序功能。
你可以自己做键值表对应啊。就是做数据,把百家姓和其拼音组合对应的表,可以用文件存储,也 可以用数据库存储,或者干脆直接写在代码了,用结构数组或链表加载。
然后需要排序的时候,直接用结构数组或链表排序啊。
如果你除了姓,连名字都要算在排序中,那你得把整个汉字字典的文字都做成键值表,别人起名字用什么字,谁能知道。那你这就纯粹是数据问题了。
我刚才试了一下百度搜索,百度文库里有现成的汉字拼音对照表,你可以试试,全不全我就不知道了。
C语言!!!!字典!!!!!
#include iostream
#include map
#include cstdio
#include string
using namespace std ;
mapstring,string m ;
int main( )
{
char s[42] , *p , *q ;
int i ;
while( gets( s ) s[0] != '\0' )
{
p = strtok( s , " " ) ;
q = strtok( NULL , " " ) ;
m[q] = p ;
}
while( ~scanf("%s", s ) )
{
if( m.find( s ) != m.end() )
printf("%s\n", m[s].c_str() ) ;
else
printf("eh\n") ;
}
return 0 ;
}
c语言 密码字典
楼上的兄弟不适合做程序员,自私!
楼主,12位的密码你知道有多少了吗?这数据量非常大,程序我是写出来了,10位还能用文本打开,但是到了12位就打不开了,120多M的txt,反正我电脑打开的时候就卡死了!有疑问百度找我!
其实程序很简单。
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
int main()
{
/*to char +48*/
FILE *f;
char a[13];
int i1,i2,i3,i4,i5,i6,i7,i8;
f= fopen("C:\\mima.txt","wt+");
printf("create...\n ");
a[0] = 'l';
a[1] = 'X';
a[2] = '1';
a[3] = 'v';
a[112] = '\n';
for(i1=0;i110;i1++)
{
a[4]=i1+48;
for(i2=0;i210;i2++)
{
a[5]=i2+48;
for(i3=0;i310;i3++)
{
a[6]=i3+48;
for(i4=0;i410;i4++)
{
a[7]=i4+48;
for(i5=0;i510;i5++)
{
a[8]=i5+48;
for(i6=0;i610;i6++)
{
a[9]=i6+48;
for(i7=0;i710;i7++)
{
a[10]=i7+48;
for(i7=0;i710;i7++)
{
a[11]=i8+48;
fwrite(a,13,1,f);
}
}
}
}
}
}
}
}
fclose(f);
printf("success!\n");
getch();
}
用c语言编写电子英汉词典。
我用VC写了一个
比较简单的
// 词典.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include windows.h
#include stdio.h
#include malloc.h
#include winbase.h
#include process.h
void Search()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要查询的单词:\n");
scanf("%s",temp);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=GetPrivateProfileString(buffer,temp,0,result,100,"./date.ini");
if(ret0)
printf("%s\n\n\n\n\n",result);
else
printf("对不起,没有您要查找的单词.\n\n\n\n\n");
}
void InsertItem()
{
char temp[100];
char buffer[2];
char result[100];
printf("请输入要插入的单词:\n");
scanf("%s",temp);
printf("请输入单词的解释:\n");
getchar();
scanf("%s",result);
buffer[0]=temp[0];
buffer[1]='\0';
int ret=WritePrivateProfileString(buffer,temp,result,"./date.ini");
if(ret=0)
printf("插入失败。\n\n\n\n\n");
else
printf("插入成功。\n\n\n\n\n");
}
int main(int argc, char* argv[])
{
int index;
main:
printf("**************MENU***************\n\n");
printf(" 1 英译汉\n");
// printf("2 汉译英\n");
printf(" 2 插入新的词条\n");
// printf(" 3 删除已有词条\n");
printf(" 3 清空屏幕\n");
printf(" 4 退出\n\n");
printf("**********************************\n");
do{
printf("请选择操作(1~4):\n");
scanf("%d",index); /*输入选择项*/
}while(index0||index5); /*选择项不在0~4之间重输*/
switch(index)
{
case 1:
Search();
goto main;
break;
case 2:
InsertItem();
goto main;
break;
case 3:
system("cls");
goto main;
break;
case 4:
return 0;
break;
default:
break;
}
return 0;
}
输出:
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
1
请输入要查询的单词:
bad
adj. 劣质的,有害的,坏的,不利的,不健康的,严重的
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
2
请输入要插入的单词:
cat
请输入单词的解释:
猫
插入成功。
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
1
请输入要查询的单词:
cat
猫
**************MENU***************
1 英译汉
2 插入新的词条
3 清空屏幕
4 退出
**********************************
请选择操作(1~4):
4
Press any key to continue
C语言简易英汉字典
这个涉及到哈希的应用,哈希也可以称为映射吧,你需要自己编写一个哈希表,键是英文单词,值是对应的中文单词,构建好这个哈希数据结构之后,查找用户的输入就很简单了。
你可以看看下面的百度百科中关于哈希表的说明:
你这个哈希的构建不算难,你可以认真看看哈希表里面关于冲突的处理,整体框架基本就出来了
如何用c语言做一个简单的英语词典
//新建一个字典文本文件,命名为:dict.dat,内容格式如下: 或下载一个也可
//abandon v.抛弃,放弃
//abandonment n.放弃
//abbreviation n.缩写
//abeyance n.缓办,中止
//abide v.遵守
//ability n.能力
//able adj.有能力的,能干的
//abnormal adj.反常的,变态的
//aboard adv.船(车)上
//abolish v.废除,取消
//******************************
#include stdio.h
#include stdlib.h
#include string.h
struct NODE
{
char e[20];
char c[50];
struct NODE* pnext;
};
struct NODE* pN;
struct NODE* pHead=NULL;
struct NODE* pNode=NULL;
struct NODE* pNext=NULL;
struct NODE* pEnd=NULL;
FILE* open_dict()
{
FILE *fp;
if((fp=fopen("dict.dat","r"))==NULL)
{
printf("open dict error!\n");
return NULL;
}
return fp;
}
int getdata_from_dict(FILE* fp)
{
int i,j;
char buf[50];
while(1)
{
pN=(struct NODE*)malloc(sizeof(struct NODE));
memset(pN-c,'\0',50);
memset(pN-e,'\0',20);
pN-pnext=NULL;
if(fgets(buf,50,fp)==NULL)
{
fclose(fp);
break;
}
sscanf(buf,"%s %s",pN-e,pN-c);
if(pHead==NULL)
{
pHead=pN;
pNode=pN;
continue;
}
pNode-pnext=pN;
pNode=pN;
pEnd=pN;
}
return 1;
}
void write_dict()
{
FILE* fp=NULL;
if((fp=fopen("dict.dat","w"))==NULL)
{
printf("open dict error!\n");
return;
}
char buf[100]={'\0'};
pNode=pHead;
while(1)
{
if(pNode==NULL)
{
break;
}
fprintf(fp,"%s %s\n",pNode-e,pNode-c);
pNode=pNode-pnext;
}
fclose(fp);
}
void del(char* char_del)
{
struct NODE* pDel=pHead;
if(strcmp(pDel-e,char_del)==0)
{
pHead=pHead-pnext;
write_dict();
return ;
}
while(1)
{
if(strcmp(pDel-pnext-e,char_del)==0)
{
if(pDel-pnext-pnext!=NULL)
{
pDel-pnext=pDel-pnext-pnext;
}
else
{
pDel-pnext=NULL;
}
write_dict();
return ;
}
else
{
pDel=pDel-pnext;
if(pDel==NULL)
{
break;
}
}
}
printf("\n未找到该单词!\n");
return;
}
void add(char* char_add, char* char_add_chs)
{
pN=(struct NODE*)malloc(sizeof(struct NODE));
memset(pN-c,'\0',50);
memset(pN-e,'\0',20);
pN-pnext=NULL;
strcpy(pN-e,char_add);
strcpy(pN-c,char_add_chs);
pEnd-pnext=pN;
pEnd=pN;
pNode=pN;
write_dict();
}
int main(int argc, char *argv[])
{
FILE* fp=NULL;
fp=open_dict();
if(fp==NULL)
{
printf("读取字典失败! 程序将退出!");
getchar();
return 1;
}
getdata_from_dict(fp);
fclose(fp);
char buf[50]={'\0'};
while(1)
{
printf("\n\n{输入quit: 即退出, 输入del: 即删除, 输入add: 即增加}\n请输入英文单词 : ");
fflush(stdin);
scanf("%s",buf);
if(strcmp(buf,"quit:")==0)
{
break;
}
else if(strcmp(buf,"del:")==0)
{
char char_del[20]={'\0'};
printf("请输入要删除的单词:");
fflush(stdin);
scanf("%s",char_del);
del(char_del);
continue;
}
else if(strcmp(buf,"add:")==0)
{
char char_add[20]={'\0'};
char char_add_chs[100]={'\0'};
printf("\n请输入要增加的单词:");
fflush(stdin);
scanf("%s",char_add);
printf("\n请输入中文意思:");
fflush(stdin);
scanf("%[^\n]",char_add_chs);
add(char_add,char_add_chs);
continue;
}
pNode=pHead;
int find=0;
while(pNode!=NULL)
{
if(strcmp(pNode-e,buf)==0)
{
printf("\n%s",pNode-c);
find=1;
break;
}
pNode=pNode-pnext;
}
if(find==0)
{
printf("\n未找到!");
}
}
return 0;
}