# Punctuation Mark Tables and Codes ``` #define slmtkPM_Big5_Num 350 char B_STR[9][16] = {"", "B0", "B1", "B21", "B3", "B4", "B22", "B23", "Be"}; char slmtkPM_Big5[slmtkPM_Big5_Num+1][5] = { { 0, 0, 0,},// offset: 0, nothing {-17, -68, -116,},// offset: 1, Comma , {-29, -128, -127,},// offset: 2, 頓號 、 {-29, -128, -126,},// offset: 3, Period 。 {-17, -68, -114,},// offset: 4, Period . {-30, -128, -89,},// offset: 5, 著重號 ‧ {-17, -68, -101,},// offset: 6, 分號 ; {-17, -68, -102,},// offset: 7, 冒號 : {-17, -68, -97,},// offset: 8, Question Mark ? {-17, -68, -127,},// offset: 9, 驚嘆號 ! {-17, -72, -80,}, {-30, -128, -90,},// offset: 11, 刪節號 … {-30, -128, -91,},// offset: 12, 刪節號 ‥ {-17, -71, -112,},// offset: 13, Comma ﹐ {-17, -71, -111,},// offset: 14, 頓號 ﹑ {-17, -71, -110,},// {-62, -73, },// offset: 16, 間隔號 · {-17, -71, -108,},// offset: 17, 分號 ﹔ {-17, -71, -107,},// offset: 18, 冒號 ﹕ {-17, -71, -106,},// offset: 19, Question Mark ﹖ {-17, -71, -105,},// offset: 20, 驚嘆號 ﹗ {-17, -67, -100,},// {-30, -128, -109,},// offset: 22, 破折號 – {-17, -72, -79,}, {-30, -128, -108,},// offset: 24, 破折號 — {-17, -72, -77,}, {-30, -107, -76,}, {-17, -72, -76,}, {-17, -71, -113,}, {-17, -68, -120,},// offset: 29, 左夾注號 ( {-17, -68, -119,},// offset: 30, 右夾注號 ) {-17, -72, -75,}, {-17, -72, -74,}, {-17, -67, -101,}, {-17, -67, -99,}, {-17, -72, -73,}, {-17, -72, -72,}, {-29, -128, -108,},// offset: 37, 左引號 〔 {-29, -128, -107,},// offset: 38, 右引號 〕 {-17, -72, -71,}, {-17, -72, -70,},// offset: 40 {-29, -128, -112,},// {-29, -128, -111,},// {-17, -72, -69,}, {-17, -72, -68,}, {-29, -128, -118,},// offset: 45, 左書名號 《 {-29, -128, -117,},// offset: 46, 右書名號 》 {-17, -72, -67,}, {-17, -72, -66,}, {-29, -128, -120,},// offset: 49, 左書名號 〈 {-29, -128, -119,},// offset: 50, 右書名號 〉 {-17, -72, -65,},// {-17, -71, -128,},// {-29, -128, -116,},// offset: 53, 左引號 「 {-29, -128, -115,},// offset: 54, 右引號 」 {-17, -71, -127,}, {-17, -71, -126,}, {-29, -128, -114,},// offset: 57, 左引號 『 {-29, -128, -113,},// offset: 58, 右引號 』 {-17, -71, -125,}, {-17, -71, -124,},// offset: 60 {-17, -71, -103,},// offset: 61, 左夾注號 ﹙ {-17, -71, -102,},// offset: 62, 右夾注號 ﹚ {-17, -71, -101,}, {-17, -71, -100,}, {-17, -71, -99, }, {-17, -71, -98, }, {-30, -128, -104, }, {-30, -128, -103, }, {-30, -128, -100, }, {-30, -128, -99, }, {-29, -128, -99, }, {-29, -128, -98, }, {-30, -128, -75, }, {-30, -128, -78, }, {-17, -68, -125, }, {-17, -68, -122, }, {-17, -68, -118, }, {-30, -128, -69, }, {-62, -89, }, {-29, -128, -125, }, {-30, -105, -117, }, {-30, -105, -113, }, {-30, -106, -77, }, {-30, -106, -78, }, {-30, -105, -114, }, {-30, -104, -122, }, {-30, -104, -123, }, {-30, -105, -121, }, {-30, -105, -122, }, {-30, -106, -95, }, {-30, -106, -96, }, {-30, -106, -67, }, {-30, -106, -68, }, {-29, -118, -93, }, {-30, -124, -123, }, {-62, -81, }, {-17, -65, -93, }, {-17, -68, -65, }, {-53, -115, }, {-17, -71, -119, }, {-17, -71, -118, }, {-17, -71, -115, }, {-17, -71, -114, }, {-17, -71, -117, }, {-17, -71, -116, }, {-17, -71, -97, }, {-17, -71, -96, }, {-17, -71, -95, }, {-17, -68, -117, }, {-17, -68, -115, }, {-61, -105, }, {-61, -73, }, {-62, -79, }, {-30, -120, -102, }, {-17, -68, -100, }, {-17, -68, -98, }, {-17, -68, -99, }, {-30, -119, -90, }, {-30, -119, -89, }, {-30, -119, -96, }, {-30, -120, -98, }, {-30, -119, -110, }, {-30, -119, -95, }, {-17, -71, -94, }, {-17, -71, -93, }, {-17, -71, -92, }, {-17, -71, -91, }, {-17, -71, -90, }, {-17, -67, -98, }, {-30, -120, -87, }, {-30, -120, -86, }, {-30, -118, -91, }, {-30, -120, -96, }, {-30, -120, -97, }, {-30, -118, -65, }, {-29, -113, -110, }, {-29, -113, -111, }, {-30, -120, -85, }, {-30, -120, -82, }, {-30, -120, -75, }, {-30, -120, -76, }, {-30, -103, -128, }, {-30, -103, -126, }, {-30, -118, -107, }, {-30, -118, -103, }, {-30, -122, -111, }, {-30, -122, -109, }, {-30, -122, -112, }, {-30, -122, -110, }, {-30, -122, -106, }, {-30, -122, -105, }, {-30, -122, -103, }, {-30, -122, -104, }, {-30, -120, -91, }, {-30, -120, -93, }, {-17, -68, -113, }, {-17, -68, -68, }, {-30, -120, -107, }, {-17, -71, -88, }, {-17, -68, -124, }, {-17, -65, -91, }, {-29, -128, -110, }, {-17, -65, -96, }, {-17, -65, -95, }, {-17, -68, -123, }, {-17, -68, -96, }, {-30, -124, -125, }, {-30, -124, -119, }, {-17, -71, -87, }, {-17, -71, -86, }, {-17, -71, -85, }, {-29, -113, -107, }, {-29, -114, -100, }, {-29, -114, -99, }, {-29, -114, -98, }, {-29, -113, -114, }, {-29, -114, -95, }, {-29, -114, -114, }, {-29, -114, -113, }, {-29, -113, -124, }, {-62, -80, }, {-30, -106, -127, }, {-30, -106, -126, }, {-30, -106, -125, }, {-30, -106, -124, }, {-30, -106, -123, }, {-30, -106, -122, }, {-30, -106, -121, }, {-30, -106, -120, }, {-30, -106, -113, }, {-30, -106, -114, }, {-30, -106, -115, }, {-30, -106, -116, }, {-30, -106, -117, }, {-30, -106, -118, }, {-30, -106, -119, }, {-30, -108, -68, }, {-30, -108, -76, }, {-30, -108, -84, }, {-30, -108, -92, }, {-30, -108, -100, }, {-30, -106, -108, }, {-30, -108, -128, }, {-30, -108, -126, }, {-30, -106, -107, }, {-30, -108, -116, }, {-30, -108, -112, }, {-30, -108, -108, }, {-30, -108, -104, }, {-30, -107, -83, }, {-30, -107, -82, }, {-30, -107, -80, }, {-30, -107, -81, }, {-30, -107, -112, }, {-30, -107, -98, }, {-30, -107, -86, }, {-30, -107, -95, }, {-30, -105, -94, }, {-30, -105, -93, }, {-30, -105, -91, }, {-30, -105, -92, }, {-30, -107, -79, }, {-30, -107, -78, }, {-30, -107, -77, }, {-30, -123, -96, }, {-30, -123, -95, }, {-30, -123, -94, }, {-30, -123, -93, }, {-30, -123, -92, }, {-30, -123, -91, }, {-30, -123, -90, }, {-30, -123, -89, }, {-30, -123, -88, }, {-30, -123, -87, }, {-29, -128, -95, }, {-29, -128, -94, }, {-29, -128, -93, }, {-29, -128, -92, }, {-29, -128, -91, }, {-29, -128, -90, }, {-29, -128, -89, }, {-29, -128, -88, }, {-29, -128, -87, }, {-17, -68, -95, }, {-17, -68, -94, }, {-17, -68, -93, }, {-17, -68, -92, }, {-17, -68, -91, }, {-17, -68, -90, }, {-17, -68, -89, }, {-17, -68, -88, }, {-17, -68, -87, }, {-17, -68, -86, }, {-17, -68, -85, }, {-17, -68, -84, }, {-17, -68, -83, }, {-17, -68, -82, }, {-17, -68, -81, }, {-17, -68, -80, }, {-17, -68, -79, }, {-17, -68, -78, }, {-17, -68, -77, }, {-17, -68, -76, }, {-17, -68, -75, }, {-17, -68, -74, }, {-17, -68, -73, }, {-17, -68, -72, }, {-17, -68, -71, }, {-17, -68, -70, }, {-17, -67, -127, }, {-17, -67, -126, }, {-17, -67, -125, }, {-17, -67, -124, }, {-17, -67, -123, }, {-17, -67, -122, }, {-17, -67, -121, }, {-17, -67, -120, }, {-17, -67, -119, }, {-17, -67, -118, }, {-17, -67, -117, }, {-17, -67, -116, }, {-17, -67, -115, }, {-17, -67, -114, }, {-17, -67, -113, }, {-17, -67, -112, }, {-17, -67, -111, }, {-17, -67, -110, }, {-17, -67, -109, }, {-17, -67, -108, }, {-17, -67, -107, }, {-17, -67, -106, }, {-17, -67, -105, }, {-17, -67, -104, }, {-17, -67, -103, }, {-17, -67, -102, }, {-50, -111, }, {-50, -110, }, {-50, -109, }, {-50, -108, }, {-50, -107, }, {-50, -106, }, {-50, -105, }, {-50, -104, }, {-50, -103, }, {-50, -102, }, {-50, -101, }, {-50, -100, }, {-50, -99, }, {-50, -98, }, {-50, -97, }, {-50, -96, }, {-50, -95, }, {-50, -93, }, {-50, -92, }, {-50, -91, }, {-50, -90, }, {-50, -89, }, {-50, -88, }, {-50, -87, }, {-50, -79, }, {-50, -78, }, {-50, -77, }, {-50, -76, }, {-50, -75, }, {-50, -74, }, {-50, -73, }, {-50, -72, }, {-50, -71, }, {-50, -70, }, {-50, -69, }, {-50, -68, }, {-50, -67, }, {-50, -66, }, {-50, -65, }, {-49, -128, }, {-49, -127, }, {-49, -125, }, {-49, -124, }, {-49, -123, }, {-49, -122, }, {-49, -121, }, {-49, -120, }, {-49, -119, }, {-53, -103, }, {-53, -119, }, {-53, -118, }, {-53, -121, }, {-53, -117, }, {-30, -106, -109, }, {-29, -128, -128, } }; int slmtkPMPriority(const char* pm_str) { // priority: 0: 句號, 1: 問號, 2: 驚嘆號, 3: 分號, 4: 逗號, // 5: 冒號, 6: 破折號, 7: 頓號, 8: 刪節號, // 9: 左引號, 10: 左夾注號, 11: 左書名號 // 12: 右引號, 13: 右夾注號, 14: 右書名號, // 15: 間隔號, 16: 連接號, 17: 其他 if (strcmp(pm_str, slmtkPM_Big5[3]) == 0 || strcmp(pm_str, slmtkPM_Big5[4]) == 0) {// 句號 return 0; } if (strcmp(pm_str, slmtkPM_Big5[8]) == 0 ||// 問號 strcmp(pm_str, slmtkPM_Big5[19]) == 0) { return 1; } if (strcmp(pm_str, slmtkPM_Big5[9]) == 0 ||// 驚嘆號 strcmp(pm_str, slmtkPM_Big5[20]) == 0) { return 2; } if (strcmp(pm_str, slmtkPM_Big5[6]) == 0 ||// 分號 strcmp(pm_str, slmtkPM_Big5[17]) == 0) { return 3; } if (strcmp(pm_str, slmtkPM_Big5[1]) == 0 ||// 逗號 strcmp(pm_str, slmtkPM_Big5[13]) == 0) { return 4; } if (strcmp(pm_str, slmtkPM_Big5[7]) == 0 ||// 冒號 strcmp(pm_str, slmtkPM_Big5[18]) == 0) { return 5; } if (strcmp(pm_str, slmtkPM_Big5[22]) == 0 ||// 破折號 strcmp(pm_str, slmtkPM_Big5[24]) == 0) { return 6; } if (strcmp(pm_str, slmtkPM_Big5[2]) == 0 ||// 頓號 strcmp(pm_str, slmtkPM_Big5[14]) == 0) { return 7; } if (strcmp(pm_str, slmtkPM_Big5[11]) == 0 ||// 刪節號 strcmp(pm_str, slmtkPM_Big5[12]) == 0) { return 8; } if (strcmp(pm_str, slmtkPM_Big5[53]) == 0 ||// 左引號 strcmp(pm_str, slmtkPM_Big5[57]) == 0 || strcmp(pm_str, slmtkPM_Big5[37]) == 0) { return 9; } if (strcmp(pm_str, slmtkPM_Big5[29]) == 0 ||// 左夾注號 strcmp(pm_str, slmtkPM_Big5[61]) == 0) { return 10; } if (strcmp(pm_str, slmtkPM_Big5[45]) == 0 ||// 左書名號 strcmp(pm_str, slmtkPM_Big5[49]) == 0) { return 11; } if (strcmp(pm_str, slmtkPM_Big5[54]) == 0 ||// 右引號 strcmp(pm_str, slmtkPM_Big5[58]) == 0 || strcmp(pm_str, slmtkPM_Big5[38]) == 0) { return 12; } if (strcmp(pm_str, slmtkPM_Big5[30]) == 0 ||// 右夾注號 strcmp(pm_str, slmtkPM_Big5[62]) == 0) { return 13; } if (strcmp(pm_str, slmtkPM_Big5[46]) == 0 ||// 右書名號 strcmp(pm_str, slmtkPM_Big5[50]) == 0) { return 14; } if (strcmp(pm_str, slmtkPM_Big5[5]) == 0 ||// 著重號 strcmp(pm_str, slmtkPM_Big5[16]) == 0 ) { // 間隔號 return 15; } return 16;// 其他 } ```