#include <stdio.h>\r
#include <stdlib.h>\r
#include <string.h>\r
+#include <stdarg.h>\r
#include "chnlib.h"\r
\r
//\r
return strtag;\r
}\r
\r
+CHNLIB_String *CHNLIB_String_InitializeWithFormat(const char format[], ...)\r
+{\r
+ CHNLIB_String *strtag;\r
+ va_list ap;\r
+ char str[CHNLIB_MAX_STRING_LENGTH];\r
+ \r
+ va_start(ap, format);\r
+ vsnprintf(str, sizeof(str), format, ap);\r
+ va_end(ap);\r
+ \r
+ strtag = CHNLIB_String_Internal_Allocate();\r
+ strtag->header.destructor = &CHNLIB_String_Internal_Destruct;\r
+ \r
+ if(str != NULL){\r
+ CHNLIB_String_SetStringFromCString(strtag, str);\r
+ }\r
+ return strtag;\r
+}\r
+\r
void CHNLIB_String_Free(CHNLIB_String *strtag)\r
{\r
//strtagを解放する。\r
//s[]の先頭からsearch[]と比較し、searchの終端まで一致したらTrue, 一致しなかったらFalseを返す。\r
//終端文字'\0'はカウントしない。\r
//search[]に含まれる文字(終端文字除く)がすべて入っていれば一致とみなす。\r
+ //どちらかがNULLであった場合は、Falseを返す。\r
int i;\r
\r
if(s == NULL || search == NULL){\r
+#ifdef DEBUG_STRING_STRICT\r
CHNLIB_ReportError("Null str.\n", CHNLIB_DEBUG_ARGUMENTS);\r
+#endif\r
return False;\r
}\r
\r