OSDN Git Service

AI003:AI_Think_SlideLookUpWordByHistoryを修正中。
[chnosproject/CHNOSProject.git] / CHNOSProject / chn / chnlib01.c
index 76df884..b47f3d0 100644 (file)
 //\r
 \r
 //\r
+//Define static values\r
+//\r
+char *CHNLIB_String_Intenal_NullCString = "";\r
+\r
+//\r
 //Declare internal functions\r
 //\r
 \r
@@ -58,7 +63,6 @@ CHNLIB_String *CHNLIB_String_Initialize(const char str[])
 void CHNLIB_String_Free(CHNLIB_String *strtag)\r
 {\r
     //strtagを解放する。\r
-    \r
     if(CHNLIB_StructureHeader_GetTypeID(strtag) != CHNLIB_STRUCT_ID_String){\r
         return;\r
     }\r
@@ -115,11 +119,15 @@ int CHNLIB_String_Print(CHNLIB_String *strtag)
 const char *CHNLIB_String_GetReferencePointerOfCString(const CHNLIB_String *strtag)\r
 {\r
     //strtagが格納している文字列へのポインタを返す。\r
-    //strtag==Invalidの場合、NULLを返す。\r
+    //strtag->str==NULLの場合、constな空文字へのポインタを返す。\r
     if(CHNLIB_StructureHeader_GetTypeID(strtag) != CHNLIB_STRUCT_ID_String){\r
         return NULL;\r
     }\r
     \r
+    if(strtag->str == NULL){\r
+        return CHNLIB_String_Intenal_NullCString;\r
+    }\r
+    \r
     return (const char *)strtag->str;\r
 }\r
 \r
@@ -176,7 +184,7 @@ int CHNLIB_String_CompareString_Strict(const CHNLIB_String *s, const CHNLIB_Stri
 \r
 uint CHNLIB_String_GetCountOfContain(const CHNLIB_String *s, const CHNLIB_String *search)\r
 {\r
-    return CHNLIB_CString_GetCountOfContain(CHNLIB_String_GetReferencePointerOfCString(s), CHNLIB_String_GetReferencePointerOfCString(search));\r
+    return CHNLIB_UTF8_GetCountOfContain(CHNLIB_String_GetReferencePointerOfCString(s), CHNLIB_String_GetReferencePointerOfCString(search));\r
 }\r
 \r
 //\r
@@ -334,26 +342,6 @@ int CHNLIB_CString_CompareString_LeftHand(const char s[], const char search[])
 \r
     return i;\r
 }\r
-\r
-uint CHNLIB_CString_GetCountOfContain(const char s[], const char search[])\r
-{\r
-    //[Not implemented]\r
-    uint count;\r
-    int i;\r
-    \r
-    if(s == NULL || search == NULL){\r
-        CHNLIB_ReportError("Null str.\n", CHNLIB_DEBUG_ARGUMENTS);\r
-        return 0;\r
-    }\r
-    \r
-    count = 0;\r
-    for(i = 0; s[i] != '\0'; i++){\r
-        if(CHNLIB_CString_CompareString(&s[i], search)){\r
-            count++;\r
-        }\r
-    }\r
-    return count;\r
-}\r
     \r
 //\r
 //Internal functions\r