Minimum Origin Version Required: Origin8 SR0
This section introduces character and string manipulation.
For more details please refer to the following Origin C Reference sections:
Character and String Manipulation Global Functions
Run "str_combine_ex1(abc, 1)" in Command Window to print out abc_1.
void str_combine_ex1(string str, int nn) { out_str(str + "_" + nn); }
Run "str_combine_ex2(abc, PI)" in Command Window to print out abc_3.14.
void str_combine_ex2(string str, double dd) { string str2; str2.Format("%s_%.2f", str, dd); out_str(str2); }
void str_combine_ex3() { char *ptr = NULL; char str1[80] = "This is the first part. "; string str2 = "This is the second part."; // appends str2 to str1, so the buffer of str1 must be large enough to contain both strings. ptr = lstrcat(str1, str2); // return the pointer of str1 printf(ptr); }
void str_combine_ex4() { string str1 = "This is the first part. "; string str2 = "This is the second part."; string str = str1 + str2; out_str(str); }
Compare two strings with case sensitivity. Run "str_compare_ex1(ABC, abc)" in Command window to print out Not equal.
void str_compare_ex1(string str1, string str2) { int nn = strcmp(str1, str2); // strcmp is case sensitive if( 0 == nn ) out_str("Equal"); else out_str("Not equal"); }
Compare two strings without case sensitivity. Run "str_compare_ex2(ABC, abc)" in Command window to print out Equal.
void str_compare_ex2(string str1, string str2) { int nn = lstrcmpi(str1, str2); // lstrcmpi is not case sensitive if( 0 == nn ) out_str("Equal"); else out_str("Not equal"); }
Find a string within a string. Run str_find_ex1("To be or not to be", "be") to find the locations of "be".
void str_find_ex1(string str1, string str2) { printf("%s\n", str1); int iPos = str1.Find(str2); while(iPos > -1) { printf("%s found at %u\n", str2, iPos + 1); // 0-based index iPos = str1.Find(str2, iPos + 1); // Next } }
Delete a character or characters from a string.
Run str_delete_ex1("To be or not to be", "be") to delete instances of "be.
void str_delete_ex1(string str1, string str2) { printf("%s\n", str1); int iPos = str1.Find(str2); while(iPos > -1) { str1.Delete(iPos, str2.GetLength()); iPos = str1.Find(str2); } printf("%s\n", str1); }
Replace a character or characters in a string.
Run str_replace_ex1("Pluto is a planet.", "planet", "dwarf planet").
// Replace characters void str_replace_ex1(string str1, string str2, string str3) { printf("%s\n", str1); str1.Replace(str2, str3); printf("%s\n", str1); }