Back to index

im-sdk  12.3.91
le_qjbj_punct.c
Go to the documentation of this file.
00001 #include <stdio.h>
00002 
00003 #ifdef HAVE_CONFIG_H
00004 #include "config.h"
00005 #endif
00006 
00007 #define MAX_LINE_LEN               256
00008 #define FULLWIDE_CHAR_NUM   94
00009 #define PUNCT_CHAR_NUM             18
00010 
00011 char *FullWideCharListByLang_CN[FULLWIDE_CHAR_NUM] = {
00012     "!",
00013     """,
00014     "#",
00015     "$",
00016     "%",
00017     "&",
00018     "'",
00019     "(",
00020     ")",
00021     "*",
00022     "+",
00023     ",",
00024     "-",
00025     ".",
00026     "/",
00027     "0",
00028     "1",
00029     "2",
00030     "3",
00031     "4",
00032     "5",
00033     "6",
00034     "7",
00035     "8",
00036     "9",
00037     ":",
00038     ";",
00039     "<",
00040     "=",
00041     ">",
00042     "?",
00043     "@",
00044     "A",
00045     "B",
00046     "C",
00047     "D",
00048     "E",
00049     "F",
00050     "G",
00051     "H",
00052     "I",
00053     "J",
00054     "K",
00055     "L",
00056     "M",
00057     "N",
00058     "O",
00059     "P",
00060     "Q",
00061     "R",
00062     "S",
00063     "T",
00064     "U",
00065     "V",
00066     "W",
00067     "X",
00068     "Y",
00069     "Z",
00070     "[",
00071     "\",
00072     "]",
00073     "^",
00074     "_",
00075     "`",
00076     "a",
00077     "b",
00078     "c",
00079     "d",
00080     "e",
00081     "f",
00082     "g",
00083     "h",
00084     "i",
00085     "j",
00086     "k",
00087     "l",
00088     "m",
00089     "n",
00090     "o",
00091     "p",
00092     "q",
00093     "r",
00094     "s",
00095     "t",
00096     "u",
00097     "v",
00098     "w",
00099     "x",
00100     "y",
00101     "z",
00102     "{",
00103     "|",
00104     "}",
00105     " ̄",
00106 };
00107 
00108 char *FullWideCharListByLang_TW[FULLWIDE_CHAR_NUM] = {
00109     "!",
00110     "〃",
00111     "#",
00112     "$",
00113     "%",
00114     "&",
00115     "′",
00116     "(",
00117     ")",
00118     "﹡",
00119     "+",
00120     ",",
00121     "-",
00122     ".",
00123     "/",
00124     "0",
00125     "1",
00126     "2",
00127     "3",
00128     "4",
00129     "5",
00130     "6",
00131     "7",
00132     "8",
00133     "9",
00134     ":",
00135     ";",
00136     "〈",
00137     "=",
00138     "〉",
00139     "?",
00140     "@",
00141     "A",
00142     "B",
00143     "C",
00144     "D",
00145     "E",
00146     "F",
00147     "G",
00148     "H",
00149     "I",
00150     "J",
00151     "K",
00152     "L",
00153     "M",
00154     "N",
00155     "O",
00156     "P",
00157     "Q",
00158     "R",
00159     "S",
00160     "T",
00161     "U",
00162     "V",
00163     "W",
00164     "X",
00165     "Y",
00166     "Z",
00167     "【",
00168     "\",
00169     "】",
00170     "︿",
00171     "_",
00172     "‵",
00173     "a",
00174     "b",
00175     "c",
00176     "d",
00177     "e",
00178     "f",
00179     "g",
00180     "h",
00181     "i",
00182     "j",
00183     "k",
00184     "l",
00185     "m",
00186     "n",
00187     "o",
00188     "p",
00189     "q",
00190     "r",
00191     "s",
00192     "t",
00193     "u",
00194     "v",
00195     "w",
00196     "x",
00197     "y",
00198     "z",
00199     "{",
00200     "|",
00201     "}",
00202     "∼",
00203 };
00204 
00205 char PunctChars[PUNCT_CHAR_NUM] = {
00206     '!', '"', '$', '&', '\'',
00207     '(', ')', ',', '.',
00208     ':', ';', '<', '>', '?',
00209     '@', '\\', '^', '_'
00210 };
00211 
00212 char *PunctCharListByLang_CN[PUNCT_CHAR_NUM] = {
00213     "!",
00214     "“",
00215     "¥",
00216     "─",
00217     "‘",
00218     "(",
00219     ")",
00220     ",",
00221     "。",
00222     ":",
00223     ";",
00224     "》",
00225     "《",
00226     "?",
00227     "@",
00228     "、",
00229     "…",
00230     "__",
00231 };
00232 
00233 char *PunctCharListByLang_TW[PUNCT_CHAR_NUM] = {
00234     "!",
00235     "“",
00236     "NT$",
00237     "─",
00238     "‘",
00239     "(",
00240     ")",
00241     ",",
00242     "。",
00243     ":",
00244     ";",
00245     "《",
00246     "》",
00247     "?",
00248     "@",
00249     "、",
00250     "…",
00251     "__",
00252 };
00253 
00254 char *PunctCharListByLang_HK[PUNCT_CHAR_NUM] = {
00255     "!",
00256     "“",
00257     "HK$",
00258     "─",
00259     "‘",
00260     "(",
00261     ")",
00262     ",",
00263     "。",
00264     ":",
00265     ";",
00266     "《",
00267     "》",
00268     "?",
00269     "@",
00270     "、",
00271     "…",
00272     "__",
00273 };
00274 
00275 char *get_qj_str(char ch)
00276 {
00277     int ch_pos;
00278 
00279     ch_pos = ch - 0x21;
00280 
00281     if (ch_pos < 0 || ch_pos >= FULLWIDE_CHAR_NUM)
00282        return (NULL);
00283 
00284 #ifdef LE_ZH_CN
00285     return (FullWideCharListByLang_CN[ch_pos]);
00286 #else
00287     return (FullWideCharListByLang_TW[ch_pos]);
00288 #endif
00289 }
00290 
00291 char *get_punct_str(char ch)
00292 {
00293     int i, ch_pos;
00294     char *str;
00295 
00296     ch_pos = -1;
00297     for (i = 0; i < PUNCT_CHAR_NUM; i++) {
00298        if (ch == PunctChars[i]) {
00299            ch_pos = i;
00300            break;
00301        }
00302     }
00303     if (ch_pos == -1)
00304        return (NULL);
00305 
00306 #ifdef LE_ZH_CN
00307     return (PunctCharListByLang_CN[ch_pos]);
00308 #else
00309 #ifdef LE_ZH_TW
00310     return (PunctCharListByLang_TW[ch_pos]);
00311 #else
00312     return (PunctCharListByLang_HK[ch_pos]);
00313 #endif
00314 #endif
00315 }