當前位置:首頁 » 編程語言 » c語言數字翻譯成英文

c語言數字翻譯成英文

發布時間: 2022-09-10 08:51:52

c語言數字翻譯成英文

我剛剛寫了一個,你看看可滿足你的要求。呵呵。滿足別忘了採納啊。
#include<stdio.h>
char *num[]={
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine"
};
main()
{
int n=0,i=0;
int str[20],len=0;
scanf("%d",&n);

int *a = (int*)malloc(n*sizeof(int));
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}

for(i=0; i<n; i++)
{
len=0;
if(a[i]==0)
{
str[0]=0;
len=1;
}
while( a[i]!=0 )
{
str[len++] = a[i]%10;
a[i]/=10;
}
while(len>0)
{
printf("%s ",num[str[--len]]);
}
printf("\n");
}

free(a);
getch();
}

㈡ c語言:將數字編號翻譯成英文編號。

#include<stdio.h>
int main(){
int a[10],i,ind;
char *eng[10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
long num1,num2;
scanf("%ld",&num1);
num2=num1;
ind=0;
while (num2!=0){
a[ind]=num2%10;
ind++;
num2=num2/10; }
printf("%ld English_exp: ",num1);
for(i=ind-1;i>=0;i--){ printf("%s ",eng[a[i]]); }}
對照一下看看

㈢ c語言關鍵字中英翻譯機,要求創建文件搜索

程序使用結構鏈表實現。

由於我寫的函數已經自動識別中英文輸入,中英文翻譯功能其實可以合並成一個選項(3,4選項),但你題目既然要求2項目,所以沒合並。

根據題目,創建字典是覆蓋性,既每次創建輸入,都會覆蓋掉原文件,但考慮後期擴展,我的函數writeFile可以不覆蓋,在原文件後新增,具體看備注。

菜單顯示是利用遞歸函數,如果你想新增功能,參照我選項改。

(另外所有函數異常,我都是採取拋出,沒有處理,你想處理根據我的函數返回值寫處理吧!)

#include<stdio.h>

#include<string.h>

#include<malloc.h>

#define FPATH "C:\keyWord.txt"

typedef struct keyWord

{

char kwCN[20];// 中文名

char kwEN[10];// 英文名

struct keyWord *next;

}KW;

void freeKWS(KW *kwsHead);//釋放鏈表內存

int createDictionary(char *path);//創建字典。成功返回1 失敗返回0

int writeFile(char *path,KW *kwsHead,int flag);//寫入文件。成功返回1,失敗返回0。flag:0新增;1修改或刪除

KW *readFile(char *path);//讀取文件。成功返回頭節點,失敗返回NULL。

int isCN(char *strCN);//判斷字元串是否是全中文,是返回1,否返回0

void showKWS(char *path,char*keyCN,char *keyEN);//參數全部傳NULL列印整個鏈表。keyCN!=NULL列印對應英文,keyZN!=NULL列印對應中文

void showMenu(int n);//遞歸函數列印菜單,第一次調用傳值-1

void selectByKey(char *keyN);//輸入中文輸出英文,輸入英文輸出中,自動識別中英文關鍵字

int main()

{

//createDictionary("C:\keyWord.txt");

//showKWS(NULL,NULL);

showMenu(-1);


}

void showMenu(int n)//列印菜單

{

char cn[20],en[10];

switch(n)

{

case 1:

createDictionary(FPATH);

break;

case 2:

printf("當前中英文詞典的內容: ");

showKWS(FPATH,NULL,NULL);

break;

case 3:

printf("請輸入英文關鍵字:");

scanf("%s",en);

getchar();

selectByKey(en);

break;

case 4:

printf("請輸入中文關鍵字:");

scanf("%s",cn);

getchar();

selectByKey(cn);

break;

case 5:

exit(0);

break;

case -1:

while(1)

{

system("cls");

printf("|***********************電子詞典模擬軟體***********************| ");

printf("1、創建關鍵字中英文詞典 ");

printf("2、顯示關鍵字中英文詞典 ");

printf("3、輸入英文關鍵字,查閱英漢詞典 ");

printf("4、輸入中文關鍵字,查閱漢英詞典 ");

printf("5、退出 ");

printf("|*********************All rights reserved**********************| ");

printf("請選擇菜單中的1或2或3或4或5 ");

scanf("%d",&n);

getchar();

showMenu(n);

}

break;

}

n=-1;

printf("----------按任意鍵返回上級菜單----------- ");

getchar();

}

void selectByKey(char *keyN)//輸入中文輸出英文,輸入英文輸出中,自動識別中英文關鍵字

{

if(isCN(keyN))

showKWS(FPATH,keyN,NULL);

else

showKWS(FPATH,NULL,keyN);

}

int isCN(char *strCN)//判斷字元串是否包含中文,是返回1,否返回0

{

char *p=strCN;

while(*p!=0)

{

if((*p&0x80)==0x80)

return 1;

p++;

}

return 0;

}

void showKWS(char *path,char *keyCN,char *keyEN)//參數全部傳NULL列印整個鏈表。keyCN!=NULL列印對應英文,keyZN!=NULL列印對應中文

{

KW *kwsHead=NULL;

kwsHead=readFile(path);

if(kwsHead)

while(kwsHead->next)

{

if(keyCN!=NULL && keyEN==NULL && strcmp(kwsHead->next->kwCN,keyCN)==0){

printf("對應英文關鍵字:%s ",kwsHead->next->kwEN);

break;

}

if(keyEN!=NULL && keyCN==NULL && strcmp(kwsHead->next->kwEN,keyEN)==0){

printf("對應中文關鍵字:%s ",kwsHead->next->kwCN);

break;

}

if(keyEN==NULL && keyCN==NULL)

printf("%s %s ",kwsHead->next->kwEN,kwsHead->next->kwCN);

kwsHead=kwsHead->next;

}

freeKWS(kwsHead);

}

int createDictionary(char *path)//創建字典。成功返回1 失敗返回0

{

char cn[20],en[10];

KW *kwsHead=NULL,*kwTail=NULL,*kwNew=NULL;

kwsHead=(KW *)malloc(sizeof(KW));

if(!kwsHead)

return 0;

kwsHead->next=NULL;

printf("請輸入關鍵字中文及英文(每行一組空格分割,輸入NULL退出輸入): ");

while(1)

{

cn[0]=en[0]=0;

scanf("%s",cn);

if(strcmp(cn,"NULL")==0)

break;

scanf("%s",en);

if(strcmp(en,"NULL")==0)

break;

kwNew=(KW *)malloc(sizeof(KW));

kwNew->kwCN[0]=kwNew->kwEN[0]=0;

kwNew->next=NULL;

strcpy(kwNew->kwCN,cn);

strcpy(kwNew->kwEN,en);

if(kwsHead->next)

kwTail->next=kwNew;

else

kwsHead->next=kwNew;

kwTail=kwNew;

}

getchar();

return writeFile(path,kwsHead,1);

}

KW *readFile(char *path)//讀取文件。成功返回頭節點,失敗返回NULL。

{

FILE *fp=NULL;

char cn[20],en[10];

KW *kwsHead=NULL,*kwTail=NULL,*kwNew=NULL;

kwsHead=(KW *)malloc(sizeof(KW));

if(!kwsHead)

return NULL;

kwsHead->next=NULL;

fp=fopen(path,"r");

if(!fp)

{

printf("文件打開失敗! ");

return NULL;

}

fseek(fp,0,SEEK_SET);

while(fscanf(fp,"%s%s",cn,en)!=-1)

{

kwNew=(KW *)malloc(sizeof(KW));

if(!kwNew)

return NULL;

kwNew->next=NULL;

strcpy(kwNew->kwCN,cn);

strcpy(kwNew->kwEN,en);

if(kwsHead->next)

kwTail->next=kwNew;

else

kwsHead->next=kwNew;

kwTail=kwNew;

}

fclose(fp);

return kwsHead;

}

int writeFile(char *path,KW *kwsHead,int flag)//寫入文件。成功返回1,失敗返回0。flag:0新增;1修改或刪除

{

FILE *fp=NULL;

if(flag)

fp=fopen(path,"wt+");

else

fp=fopen(path,"rt+");

if(!fp)

{

printf("文件打開失敗! ");

return 0;

}

fseek(fp,0,SEEK_END);

while(kwsHead->next)

{

fprintf(fp,"%s %s ",kwsHead->next->kwCN,kwsHead->next->kwEN);

kwsHead=kwsHead->next;

}


fclose(fp);

printf("數據寫入文件成功! ");

freeKWS(kwsHead);

return 1;

}

void freeKWS(KW *kwsHead)//釋放鏈表內存

{

KW *kwDel=NULL;

while(kwsHead->next)

{

kwDel=kwsHead->next;

kwsHead=kwsHead->next;

free(kwDel);

}

free(kwsHead);

}

㈣ 關於c語言設計,將n位數字,每一位轉變為英文,859變為eight five nine

因為int型有最大值4294967295,所以用malloc動態生成指定大小的字元串後就不會對輸入的數字有位數的限制了。不過我還是建議在c++下用string類或STL來完成此類問題比較方便。
以下是我針對你的問題用C語言寫的以下代碼,注意,位數應該在輸入數字前去輸入,這樣才比較合理。
另外你的switch語句中缺少對於零值的判斷,我對此進行了一些修改。
#include<stdio.h>
#include<stdlib.h>
void Display(char src);
int main()
{
int Size;
char* Num;
printf("輸入位數:");
scanf("%d",&Size);
Num=(char *)malloc(sizeof(char)*Size);
printf("請輸入你想要的數字:");
scanf("%s",Num);
for(int i=0;i<Size;++i)
Display(Num[i]);
free(Num);
printf("\n");
return 0;
}
void Display(char src)
{
switch(src-'0')
{
case 0:printf("zero ");break;
case 1:printf("one ");break;
case 2:printf("two ");break;
case 3:printf("three ");break;
case 4:printf("four ");break;
case 5:printf("five ");break;
case 6:printf("six ");break;
case 7:printf("seven ");break;
case 8:printf("eight ");break;
case 9:printf("nine ");break;
default:printf("error\n");
}
}

㈤ C語言 編寫一個解碼程序,把一個英語句子譯成數字代碼。

#include <stdio.h>

int main ()
{
char c;

while ((c = getchar()) != '\n')
{
if(c==' ')
{
printf("*");
continue;
}
c-=64;
if (c!=-32)
printf ("%d ",c);
}

printf (".");

return 0;
}
試試看符不符合你的要求

㈥ 請用C語言編寫一個解碼函數,把一個英語句子譯成數字代碼。解碼規則是

#include<stdio.h>
intmain()
{
charc;
while((c=getchar())!=' ')
{
if(c=='')
printf("*");
else
{
if(c>=97&&c<=122)
printf("%d",c-=96);
else
{
if(c>=65&&c<=90)
printf("%d",c-=38);
else
printf("%c",c);
}
}
}
return0;
}

㈦ c語言在線翻譯器

這個是大數加法的程序了,
1 先進行分割,
2 然後將對應的字元數字保存為數字逆序放到數組里,
3 在做加法,進位的時候後面以為加,低位和減去10為低位,
4 逆序輸出結果

㈧ C語言翻譯數字成英文單詞的編程

void transLate(char * from,char * to)
{
printf("%s",to[from-'1']);
}
整個函數是錯的

傳入的第二個參數應該是char**to
第一個參數char*from沒有轉換成int類型,不可以這樣使用,會造成segmentation fault

㈨ 如何用C語言將輸入的數字轉化成英語

對照字母的ASCII碼進行輸入數字,然後再輸出字母。

和你的相比,不知是否復雜。
此程序的計算范圍:0<=num<1000。如果還想要計算更大的數,可以在最後面加判斷語句,方法類似。
#include<stdio.h>
void main()
{
char *Eng1[20]={"zero","one","two","three","four","five","six","seven",
"eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen",
"sixteen","seventeen","eighteen","nineteen"};
char *Eng2[8]={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"};
int num;
printf("請輸入數字: ");
scanf("%d",&num);
printf("對應的英文為: ");
if(num>=0&&num<=19)
printf("%s\n",Eng1[num]);
else if(num<100)
{
int s,y;
s=num/10;
y=num%10;
printf("%s %s\n",Eng2[s-2],Eng1[y]);
}
else if(num<1000)
{
int b,s,y;
b=num/100;
y=num%100;
if(y>9)
{
s=(num%100)/10;
y=(num%100)%10;
if(y==0)
printf("%s hundred and %s\n",Eng1[b],Eng2[s-2]);
else
printf("%s hundred and %s %s\n",Eng1[b],Eng2[s-2],Eng1[y]);
}
else
printf("%s hundred and %s\n",Eng1[b],Eng1[y]);
}
}

㈩ 求C語言1000內將英文翻譯成數字,最後一步不能執行,為什麼

strcpy(str, str2+k+1);

for (i =0; i<=9; i++)
{

if (strcmp(str1[i], str2) == 0)
printf("%d", i);
}//for
}//if

熱點內容
會員過期緩存的能看嗎不聯網 發布:2025-01-12 21:16:47 瀏覽:768
演算法工作原理 發布:2025-01-12 20:36:38 瀏覽:25
網路訪問監控軟體 發布:2025-01-12 20:26:57 瀏覽:466
養羊啦源碼 發布:2025-01-12 20:25:48 瀏覽:571
軒逸朗逸哪個配置最好 發布:2025-01-12 20:10:00 瀏覽:50
主板存儲器分 發布:2025-01-12 20:04:46 瀏覽:377
資料庫邏輯運算 發布:2025-01-12 20:03:54 瀏覽:572
javawindows伺服器搭建 發布:2025-01-12 19:59:37 瀏覽:571
linux關閉iptables 發布:2025-01-12 19:58:49 瀏覽:151
伺服器電腦名字改了影響資料庫嗎 發布:2025-01-12 19:58:44 瀏覽:653