⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strops.sl

📁 一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件
💻 SL
字号:
_debug_info = 1; () = evalfile ("inc.sl");print ("Testing string functions...");variable s;s = strcompress (" \t  \tA\n\ntest\t", " \t\n");if (s != "A test") failed ("strcompress");s = " \t hello world\n\t";if ("hello world" != strtrim (s)) failed ("strtrim");if ("hello world\n\t" != strtrim_beg (s)) failed ("strtrim_beg");if (" \t hello world" != strtrim_end (s)) failed ("strtrim_beg");if ("hello wor" != strtrim (s, " \t\nld")) failed ("strtrim with whitespace");if ("" != strcat ("", ""))  failed ("strcat 0");if ("1" != strcat ("", "1"))  failed ("strcat 1");if ("abcdefg" != strcat ("a", "b", "c", "d", "e", "f", "g")) failed ("strcat");if ("abcdefg" != strcat ("abcdefg")) failed ("strcat 2");if ((strtok (s)[0] != "hello")     or (strtok(s)[1] != "world")    or (strtok (s, "^a-z")[0] != "hello")    or (strtok (s, "^a-z")[1] != "world")    or (2 != length (strtok (s)))    or (2 != length (strtok (s, "^a-z")))) failed ("strtok");define test_create_delimited_string (){   variable n = ();   variable args = __pop_args (_NARGS - 3);   variable delim = ();   variable eresult = ();   variable result;      result = create_delimited_string (delim, __push_args (args), n);   if (eresult != result)     failed ("create_delimited_string: expected: %s, got: %s",	     eresult, result);   if (n)     result = strjoin ([__push_args (args)], delim);   else      result = strjoin (String_Type[0], delim);   if (eresult != result)     failed ("strjoin: expected: %s, got: %s",	     eresult, result);}	test_create_delimited_string ("aXXbXXcXXdXXe",			      "XX",			      "a", "b", "c", "d", "e",			      5);test_create_delimited_string ("", "", "", 1);test_create_delimited_string ("a", ",", "a", 1);test_create_delimited_string (",", ",", "", "", 2);test_create_delimited_string (",,", ",", "", "", "", 3);test_create_delimited_string ("", "XXX", 0);static define test_strtrans (s, from, to, ans){   variable s1 = strtrans (s, from, to);   if (ans != s1)     failed ("strtrans(%s, %s, %s) --> %s", s, from, to, s1);}test_strtrans ("hello world", "^a-zA-Z", "X", "helloXworld");test_strtrans ("hello", "", "xxxx", "hello");test_strtrans ("hello", "l", "", "heo");test_strtrans ("hello", "helo", "abcd", "abccd");test_strtrans ("hello", "hl", "X", "XeXXo");test_strtrans ("", "hl", "X", "");test_strtrans ("hello", "a-z", "A-Z", "HELLO");test_strtrans ("hello", "a-mn-z", "A-MN-Z", "HELLO");test_strtrans ("abcdefg", "a-z", "Z-A", "ZYXWVUT");test_strtrans ("hejklo", "k-l", "L-L---", "hejL-o");test_strtrans ("hello", "he", "-+", "-+llo");test_strtrans ("hello", "", "", "hello");test_strtrans ("hello", "helo", "", "");test_strtrans ("hello", "o", "", "hell");test_strtrans ("hello", "hlo", "", "e");test_strtrans ("", "hlo", "", "");test_strtrans ("HeLLo", "A-Ze", "", "o");test_strtrans ("HeLLo", "^A-Z", "", "HLL");define test_str_replace (a, b, c, result, n){   variable new;   variable m;   (new, m) = strreplace (a, b, c, n);   if (new != result)     failed ("strreplace (%s, %s, %s, %d) ==> %s", a, b, c, n, new);      if (n == 1)     {	n = str_replace (a, b, c);	!if (n) a;	new = ();	if (new != result)	  failed ("str_replace (%s, %s, %s) ==> %s", a, b, c, new);     }}test_str_replace ("a", "b", "x", "a", 1);test_str_replace ("a", "b", "x", "a", -1);test_str_replace ("a", "b", "x", "a", -10);test_str_replace ("a", "b", "x", "a", 10);test_str_replace ("a", "b", "x", "a", 0);test_str_replace ("blafoofbarfoobar", "", "xyyy", "blafoofbarfoobar", 0);test_str_replace ("blafoofbarfoobar", "", "xyyy", "blafoofbarfoobar", 1);test_str_replace ("blafoofbarfoobar", "", "xyyy", "blafoofbarfoobar", -1);test_str_replace ("blafoofbarfoobar", "", "xyyy", "blafoofbarfoobar", -10);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blafoofbarfoobar", 0);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blaXYfbarfoobar", 1);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blaXYfbarXYbar", 2);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blaXYfbarXYbar", 10);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blafoofbarXYbar", -1);test_str_replace ("blafoofbarfoobar", "foo", "XY", "blaXYfbarXYbar", -2);test_str_replace ("blafoofbarfoobar", "r", "", "blafoofbarfoobar", 0);test_str_replace ("blafoofbarfoobar", "r", "", "blafoofbafoobar", 1);test_str_replace ("blafoofbarfoobar", "r", "", "blafoofbafooba", 2);test_str_replace ("blafoofbarfoobar", "r", "", "blafoofbarfooba", -1);test_str_replace ("blafoofbarfoobar", "r", "", "blafoofbafooba", -2);test_str_replace ("bla", "bla", "", "", -2);test_str_replace ("bla", "bla", "foo", "foo", -2);test_str_replace ("bla", "bla", "foo", "foo", 1);define test_strcat (){   % This test generates a combined byte-code.  It is used for leak checking   variable a = "hello";   variable b = "world";   loop (20)     {	variable c = a + b;	a = c;     }}		print ("Ok\n");exit (0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -