c語言詞典
1. c語言 字元串數組字典排序
用二維數組記錄書名,再聲明一個指針數組並使各元素分別指向各書名,然後對指針數組元素按其指向的書名的字典順序排序。這樣比直接拷貝書名的效率會高些。舉例如下:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
#defineN10
voidmysort(char*s[],intn){
inti,j,k;
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(strcmp(s[k],s[j])>0)
k=j;
if(i!=k){
s[i]=(char*)((unsigned)s[i]^(unsigned)s[k]);//交換指針
s[k]=(char*)((unsigned)s[k]^(unsigned)s[i]);
s[i]=(char*)((unsigned)s[i]^(unsigned)s[k]);
}
}
}
intmain(void){
charbook[N][30],*pbook[N];
inti,k;
for(i=0;i<N;pbook[i]=book[i++]);
printf("Pleaseenter10book-name... ");
for(i=0;i<N;pbook[i]=book[i++])
scanf("%s",book+i);
mysort(pbook,N);
for(k=i=0;i<N;printf(++k%5?"%s":"%s ",pbook[i++]));//打出來看看......
if(k%5)printf(" ");
return0;
}
2. C語言課程設計 電子詞典
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include <winbase.h>
#include <process.h>
void Search()
{
char ret;
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(ret>0)
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(index<0||index>5); /*選擇項不在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;
}
3. 用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(ret>0)
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(index<0||index>5); /*選擇項不在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
4. 求一個c語言按字典序全排列的方法
如果是想學習一下演算法,用c語言不錯。如果是實際使用需要,就用現成的木頭超級字典生成器(MutouDic),工具集里有一個排列字典工具,可以生成任意個元素,任意長度的升序排列、降序排列和全排列。
5. 求高人指教,C語言中,漢字姓名怎麼按字典順序排列
字典是按照拼音排序的,沒有現成的拼音排序功能。
你可以自己做鍵值表對應啊。就是做數據,把百家姓和其拼音組合對應的表,可以用文件存儲,也 可以用資料庫存儲,或者乾脆直接寫在代碼了,用結構數組或鏈表載入。
然後需要排序的時候,直接用結構數組或鏈表排序啊。
如果你除了姓,連名字都要算在排序中,那你得把整個漢字字典的文字都做成鍵值表,別人起名字用什麼字,誰能知道。那你這就純粹是數據問題了。
我剛才試了一下網路搜索,網路文庫里有現成的漢字拼音對照表,你可以試試,全不全我就不知道了。