diff examples/stringdemo.cc @ 6572:8e7148b84b59

[project @ 2007-04-25 04:13:44 by jwe]
author jwe
date Wed, 25 Apr 2007 04:14:49 +0000
parents
children 4270ded9ddc6
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/examples/stringdemo.cc
@@ -0,0 +1,32 @@
+#include <octave/oct.h>
+
+DEFUN_DLD (stringdemo, args, , "String Demo")
+{
+  int nargin = args.length();
+  octave_value_list retval; 
+
+  if (nargin != 1)
+    print_usage ();
+  else
+    {
+      charMatrix ch = args(0).char_matrix_value ();
+
+      if (! error_state)
+        {
+          if (args(0).is_sq_string ())
+            retval(1) = octave_value (ch, true);
+          else
+            retval(1) = octave_value (ch, true, '\'');
+
+          octave_idx_type nr = ch.rows();
+          for (octave_idx_type i = 0; i < nr / 2; i++)
+            {
+              std::string tmp = ch.row_as_string (i);
+              ch.insert (ch.row_as_string(nr-i-1).c_str(), i, 0);
+              ch.insert (tmp.c_str(), nr-i-1, 0);
+            }
+          retval(0) = octave_value (ch, true);
+        }
+    }
+  return retval;
+}