線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:562
推到 Plurk!
推到 Facebook!

翻譯程式編寫問題....

尚未結案
cloudzzz
一般會員


發表:1
回覆:1
積分:0
註冊:2004-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-21 14:47:49 IP:220.134.xxx.xxx 未訂閱
小弟剛學c語言 一個月左右 不過魔人我老師就派了一個大作業 (對我來說算大了 orz)    內容: 將dict.txt檔 讀入程式內(小弟用結構儲存) 然後輸入一串字串(開頭第一字大寫) 比對資料 開始翻譯 如果輸入空白字元就跳出 不然將一直執行  輸出時遇到不能翻譯的字 照輸入來輸出 ex 輸入 I am a student adsadasasas 輸出 我 是 一個 學生 adsadasasas 共xx字元 Ax個 Bx個 Cx個............Zx個    小弟買書奮力苦讀的結果 寫出了以下的程式
#include 
#include      
#define max 40 
#define rw 30    struct ss
{        
        char str1[rw][max],                //單字
              str2[rw][max],                //詞性
              str3[rw][max];                //中文
}strall[2];    int main (void)
{
        FILE *dict;
        char find[max];                        //input
        int i,j;                                //迴圈變數
        dict =fopen("dict.txt","r");        // 將dict.txt => dict                    for(i=0; i<30 ;i  ) 
        {
                fscanf(dict, "%s",strall[0].str1[i]); //dict 單字 => strall[0].str1
                fscanf(dict, "%s",strall[1].str2[i]); //dict 詞性 => strall[1].str2
                fscanf(dict, "%s",strall[2].str3[i]); //dict 中文 => strall[2].str3
        }
        for (j = 0; j < i; j  )
                printf("%-10s!s1s\n",strall[0].str1[j],strall[1].str2[j],strall[2].str3[j]);            /*print出dict檔內容*/
        
        /**********************************************************************/
        printf("\n請輸入要翻譯的字or句子╰( ≧﹏≦)╯\n\n");            while (scanf("%s",&find) != EOF)
        {
                scanf("%s",&find)                    if((find[0] >= 65 && find[0] <= 90) && find[0] != 73)
                {
                        find[0] = find[0]   32; /*第一個字為大寫 也可讀*/
                }
        
                for(i=0; i< 30 ;i  )
                {
                        if(strncmp(find,strall[0].str1[i],4) ==0)/*比對*/
                        {
                                printf("%s ",strall[2].str3[i]); //印出答案
                        }
                        
                }
        }
         printf("\nbyebye\n歡迎下次再來唷~~╭( ▔▽▔)╯ \n");
}    
小弟目前遇到的問題 1.while裡面的判斷無效 = =| 不知道是小弟條件設錯還是?(設成空白字元跳出) 2.翻譯不出來的字 就是空白......不知道怎麼改進@@| 3.計算A.b.c ....z 各有幾個的方法 小弟只想到用ascii一個一個比對 不知道有沒有更快的寫法? 4.能先用while 將輸入值傳入find後 跳開while 再開始印出輸出的工作 "並且" 輸出完能繼續輸入 直到輸入空白字元跳出程式 (只想到goto = =| 但這好像不合邏輯?) 以上是目前小弟遇上的問題 請大家幫忙解答 THX ^^|
cloudzzz
一般會員


發表:1
回覆:1
積分:0
註冊:2004-10-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-21 14:55:34 IP:220.134.xxx.xxx 未訂閱
另外附上dict.txt檔的內容 ^^| this 代名詞 這 that 代名詞 那 I 代名詞 我 he 代名詞 他 she 代名詞 她 you 代名詞 你 your 代名詞 你的 a 不定冠詞 一個 is 動詞 是 am 動詞 是 are 動詞 是 has 動詞 有 have 動詞 有 had 動詞 有 pick 動詞 摘 like 動詞 喜歡 need 動詞 需要 wonderful 形容詞 非常棒的 some 形容詞 一些 good 形容詞 好的 one 形容詞 一個 two 形容詞 兩個 ten 形容詞 十個 experience 名詞 經驗 strawberry 名詞 草莓 student 名詞 學生 baseball 名詞 棒球 apple 名詞 蘋果 egg 名詞 雞蛋 help 名詞 幫助 ps.不是要衝人數...是字數過多被截斷了 so 另po @@| 小弟之前只寫過一些簡單的輸入輸出跟迴圈控制程式 so 上面那個程式 可能有很多地方寫不好or 觀念不對 也請大家指教 那些是我自己自修學的 也不知道對不對 ~_~|
系統時間:2024-06-02 10:22:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!