本文目錄一覽:
- 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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180008.html