OSDN Git Service

AI003:AI_Think_CandidateWordList_Filter()は実装途中。
[chnosproject/CHNOSProject.git] / CHNOSProject / chn / chnlib04.c
index 417d1d8..4d3fe98 100644 (file)
 \r
 int CHNLIB_UTF8_GetCharacterType(char c)\r
 {\r
+    //[UTF-8]\r
     //UTF-8文字列中の1バイトcが、UTF-8文字列中でどのような役割を持つのかを返す。\r
     //0:マルチバイト文字の後続バイト\r
     //1:1バイト文字\r
     //2以上の数値n:nバイト文字の最初のバイト。後続のn個のマルチバイト後続バイトと組み合わせて一つの文字を示す。\r
     //判断不能な場合は-1を返す。\r
-    //[UTF-8]\r
     if(((c >> 6) & 3) == 2){\r
         //マルチバイト後続バイト\r
         //10xxxxxx\r
@@ -58,9 +58,9 @@ int CHNLIB_UTF8_GetCharacterType(char c)
 \r
 int CHNLIB_UTF8_GetStringLengthByCharacter(const char s[])\r
 {\r
+    //[UTF-8]\r
     //sをUTF-8文字列として解釈し、文字としては何文字で構成された文字列かを返す。\r
     //無効な(マルチバイトの一部が欠けているような)文字はカウントしない。\r
-    //[UTF-8]\r
     int i, mbsize, n;\r
     int count;\r
     \r
@@ -104,12 +104,12 @@ int CHNLIB_UTF8_GetStringLengthByCharacter(const char s[])
 \r
 uint CHNLIB_UTF8_GetNextUnicodeOfCharacter(const char s[], const char **next)\r
 {\r
+    //[UTF-8]\r
     //sをUTF-8文字列として解釈し、その文字列の最初の文字のUnicodeを返す。\r
     //また、nextがNULLでないとき、*nextに、この文字列中で次の文字にあたる部分へのポインタを格納する。\r
     //s==NULLの時、*nextの値は変更されない。\r
     //次の文字が存在しない場合は、*nextはs中の終端文字へのポインタとなる。また、戻り値は0となる。\r
     //無効な(マルチバイトの一部が欠けているような)文字は無視する。\r
-    //[UTF-8]\r
     int i, n, mbsize;\r
     uint unicode;\r
     \r
@@ -160,10 +160,10 @@ uint CHNLIB_UTF8_GetNextUnicodeOfCharacter(const char s[], const char **next)
 \r
 int CHNLIB_UTF8_CompareString(const char s[], const char search[])\r
 {\r
+    //[UTF-8]\r
     //s,searchをUTF-8文字列として解釈し、s[]の先頭からsearch[]と比較し、searchの終端まで一致したらTrue, 一致しなかったらFalseを返す。\r
     //終端文字は比較せず、search[]に含まれる文字(終端文字除く)がすべて入っていれば一致とみなす。\r
     //ただし、searchの先頭文字が終端文字、つまり空文字列だった場合は、常にFalseを返す。\r
-    //[UTF-8]\r
     int i, i_max;\r
     \r
     if(s == NULL || search == NULL){\r
@@ -186,9 +186,9 @@ int CHNLIB_UTF8_CompareString(const char s[], const char search[])
 \r
 int CHNLIB_UTF8_CompareString_LeftHand(const char s[], const char search[])\r
 {\r
+    //[UTF-8]\r
     //s,searchをUTF-8文字列として解釈し、二つの文字列がどの程度一致するか調べる。前方一致。\r
     //戻り値は、終端文字を除く、同一だった文字数。\r
-    //[UTF-8]\r
     int i, i_max;\r
     \r
     if(s == NULL || search == NULL){\r
@@ -207,10 +207,10 @@ int CHNLIB_UTF8_CompareString_LeftHand(const char s[], const char search[])
 \r
 int CHNLIB_UTF8_GetByteSizeFromLengthByCharacter(const char s[], int start, int end)\r
 {\r
+    //[UTF-8]\r
     //sをUTF-8文字列として解釈し、start番目の文字からend番目の文字までの占めるバイト数を返す。\r
     //start番目の文字が終端文字以降の文字を指している場合は0を返す。\r
-    //end番目の文字が\r
-    //[UTF-8]\r
+    //end番目の文字が終端文字以降の文字を指していても、endが文字列終端を指している場合と同値になる。\r
     int i;\r
     const char *p;\r
     \r
@@ -238,8 +238,8 @@ int CHNLIB_UTF8_GetByteSizeFromLengthByCharacter(const char s[], int start, int
 \r
 uint CHNLIB_UTF8_GetCountOfContain(const char s[], const char search[])\r
 {\r
-    //文字列s中に、文字列searchがいくつ含まれているかを返す。\r
     //[UTF-8]\r
+    //文字列s中に、文字列searchがいくつ含まれているかを返す。\r
     uint count;\r
     \r
     if(s == NULL || search == NULL){\r