digitalmars.D - string init
- kevinbealer yahoo.com May 03 2004
- Andy Friesen <andy ikagames.com> May 03 2004
- Kevin Bealer <Kevin_member pathlink.com> May 04 2004
- Ben Hinkle <bhinkle4 juno.com> May 03 2004
- Mike Wynn <one_mad_alien hotmail.com> May 06 2004
Let's say I want to define a mutable string: char[] a_tmp = "abcd"; // immutable ref char[] a; a[] = a_tmp; // mutable copy of immutable data. OR..? char[] a = "abc" ~ "d"; Is there a simpler or more direct syntax? Kevin
May 03 2004
kevinbealer yahoo.com wrote:Let's say I want to define a mutable string: char[] a_tmp = "abcd"; // immutable ref char[] a; a[] = a_tmp; // mutable copy of immutable data. OR..? char[] a = "abc" ~ "d"; Is there a simpler or more direct syntax? Kevin
char[] a = ("abcd").dup; may work for you. -- andy
May 03 2004
In article <c76g4e$iau$1 digitaldaemon.com>, Andy Friesen says...kevinbealer yahoo.com wrote:Let's say I want to define a mutable string: char[] a_tmp = "abcd"; // immutable ref char[] a; a[] = a_tmp; // mutable copy of immutable data. OR..? char[] a = "abc" ~ "d"; Is there a simpler or more direct syntax? Kevin
char[] a = ("abcd").dup; may work for you. -- andy
Yep, that looks like the most logical. Kevin
May 04 2004
kevinbealer yahoo.com wrote:Let's say I want to define a mutable string: char[] a_tmp = "abcd"; // immutable ref char[] a; a[] = a_tmp; // mutable copy of immutable data. OR..? char[] a = "abc" ~ "d"; Is there a simpler or more direct syntax? Kevin
The ".dup" property will duplicate an array: char[] a = a_tmp.dup;
May 03 2004
On Mon, 3 May 2004 22:05:57 +0000 (UTC), kevinbealer yahoo.com wrote:Let's say I want to define a mutable string: char[] a_tmp = "abcd"; // immutable ref char[] a; a[] = a_tmp; // mutable copy of immutable data. OR..? char[] a = "abc" ~ "d"; Is there a simpler or more direct syntax? Kevin
--------------------- import std.c.stdio; void nctest() { char[] a = "abcd"; char[]b = a; printf( "char[] a = 'acbd'\n" ); printf( "char[] b = a;\n=>\n" ); printf( "a=%.*s\n", a ); printf( "b=%.*s\n", b ); printf( "b[2]='2'...\n" ); b[2] = '2'; printf( "a=%.*s\n", a ); printf( "b=%.*s\n", b ); } void ctest() { const char[] a = "abcd"; char[]b = a; printf( "const char[] a = 'acbd'\n" ); printf( "char[] b = a;\n=>\n" ); printf( "b[2]='2'...\n" ); printf( "a=%.*s\n", a ); printf( "b=%.*s\n", b ); printf( "b[2]='2'...\n" ); b[2] = '2'; printf( "a=%.*s\n", a ); printf( "b=%.*s\n", b ); } int main( char[][] args ) { nctest(); ctest(); return 0; } ------------------------ output (as one would hope is) char[] a = 'acbd' char[] b = a; => a=abcd b=abcd b[2]='2'... a=ab2d b=ab2d const char[] a = 'acbd' char[] b = a; => b[2]='2'... a=abcd b=abcd b[2]='2'... a=abcd b=ab2d
May 06 2004









Kevin Bealer <Kevin_member pathlink.com> 