您的位置:

c语言对应字典,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;

}